gpt4 book ai didi

hibernate - java.sql.SQLException : Schema 'ROOT' does not exist

转载 作者:行者123 更新时间:2023-12-04 15:36:20 27 4
gpt4 key购买 nike

我正在使用带有嵌入式 derby 的 hibernate,并且我希望 hibernate 创建数据库和表,所以我尝试了以下配置,但出现错误:

java.sql.SQLException: Schema 'ROOT' does not exist

这是我的配置:
    <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.myapp.domain" />


<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.DerbyDialect
hibernate.hbm2ddl.auto=create
hibernate.show_sql=false
hibernate.format_sql=false
</value>
</property>

</bean>

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" />

<property name="url" value="jdbc:derby:test;create=true" />

<property name="username" value="root" />

<property name="password" value="root" />

</bean>

<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>


<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />

更新:这是我第一次使用 Derby ,所以我可能缺少一些信息,所以我有一个问题:

我是否必须像此处那样配置嵌入式 Derby:

http://db.apache.org/derby/papers/DerbyTut/install_software.html

更新 2:我删除了 classpath 上负责在数据库中插入演示数据的 import.sql 脚本文件,我发现创建数据库表时出错:
1202 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
1202 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
1359 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Unsuccessful: create table users (user_id bigint generated by default as identity unique, address varchar(255), email varchar(155) not null, mobile varchar(25), name varchar(25) not null, password varchar(255) not null, primary key (user_id))
1359 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaExport - Constraints 'SQL111223214919671' and 'SQL111223214919670' have the same set of columns, which is not allowed.
1359 [main] INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
1360 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Warning: 10000, SQLState: 01J01
1360 [main] WARN org.hibernate.util.JDBCExceptionReporter - Database 'test' not created, connection made to existing database instead.

最佳答案

从类路径中删除 import.sql 文件并运行应用程序后,我发现错误是创建了数据库,但由于问题 http://issues.apache.org/jira/browse/DERBY-789 表不是由 hbm2ddl 创建的
此处说明:constraint problems using apache derby and hbm2ddl

主键不能定义为唯一的,因为这是由数据库本身处理的。

所以当我从主键中删除唯一属性时,错误消失了。

关于hibernate - java.sql.SQLException : Schema 'ROOT' does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8615414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com