当我在hibernate.cfg.xml文件中提供更新时,当我提供session.save()和transaction.commit()时,对象已保存在数据库中,但仍在日志中出现一些错误,如下所示。
org.hibernate.tool.schema.spi.CommandAcceptanceException:执行DDL错误“创建表配置文件(用户名varchar(255)不为null,First_Name varchar(255),Last_Name varchar(255),主键(用户名))”通过JDBC语句 在org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) 在org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlString(AbstractSchemaMigrator.java:559) 在org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applySqlStrings(AbstractSchemaMigrator.java:504)
和
由以下原因引起:net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc :::: 4.0.4 java.sql.SQLSyntaxErrorException:对象名称已经存在:PROFILES in statement [create table Profiles(用户名varchar(255)不为null,First_Name varchar (255),Last_Name varchar(255),主键(用户名))] 在net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:159) 在org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54)
我正在使用MS Access db,下面是我的配置文件
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="hibernate.connection.url">
jdbc:ucanaccess://E:/Eclipse_workspace_trails/DB/messenger.accdb
</property>
<property name="hibernate.connection.driver_class">
net.ucanaccess.jdbc.UcanaccessDriver
</property>
<property name="hbm2ddl.auto">update</property>
<property name="show-sql">true</property>
<mapping resource="hibernate/profiles.hbm.xml"/>
</session-factory>
答案 0 :(得分:0)
尝试将属性重命名为:
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="show_sql">true</property>