Database DB2、Hibernate、JPA:架构不存在
我对这门学科很陌生,我想知道我目前所做的有什么不对 因此,为了建立数据库连接,我创建了persistence.xml:Database DB2、Hibernate、JPA:架构不存在,database,jakarta-ee,connection,db2,persistence.xml,Database,Jakarta Ee,Connection,Db2,Persistence.xml,我对这门学科很陌生,我想知道我目前所做的有什么不对 因此,为了建立数据库连接,我创建了persistence.xml: <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="Primary">
<class>xxx.model.Lecture</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:db2://localhost:50000/xxx" />
<property name="javax.persistence.jdbc.user" value="xxx" />
<property name="javax.persistence.jdbc.password" value="xxx" />
<property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"/>
<property name="show_sql" value="true"/>
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
</properties>
</persistence-unit>
</persistence>
我错过了一些重要的东西吗
提前谢谢 简短回答:您需要在persistence.xml中指定默认的DB架构名称
…
<property name="hibernate.default_schema" value="xxx"/>
…
…
…
说明:
很可能您正在使用DB2ADMIN用户连接到数据库。DB2中的数据库模式名(如果没有明确指定)等于用户名,即DB2ADMIN。这样的模式在数据库中不存在,因此出现了错误
您需要在JPA配置中指定正确的数据库模式名称,即表所在的模式名称。没有JPA属性来存档,但您仍然在使用hibernate,所以您可以使用hibernate特定的属性来实现这一点 看起来您正在Windows中运行,用户名为db2admin。当出现DB2错误时,应该查找以SQLXXXX开头的错误代码,其中XXXX是四位数字。请尝试查找SQL错误,然后我们可以帮助您。可能您正试图在该模式中创建对象,而用户没有在该模式中创建对象的权限。
…
<property name="hibernate.default_schema" value="xxx"/>
…