Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DB2、Hibernate、JPA:架构不存在_Database_Jakarta Ee_Connection_Db2_Persistence.xml - Fatal编程技术网

Database DB2、Hibernate、JPA:架构不存在

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"

我对这门学科很陌生,我想知道我目前所做的有什么不对

因此,为了建立数据库连接,我创建了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"
             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"/>
…