Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.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
Java Hibernate表或视图不存在Oracle_Java_Sql_Hibernate - Fatal编程技术网

Java Hibernate表或视图不存在Oracle

Java Hibernate表或视图不存在Oracle,java,sql,hibernate,Java,Sql,Hibernate,我在Oracle上执行hibernate查询时遇到问题: my persistence.xml: <description>ProfileEntityManager</description> <class>com.entity.User</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <

我在Oracle上执行hibernate查询时遇到问题:

my persistence.xml:

<description>ProfileEntityManager</description>
<class>com.entity.User</class>  
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
    <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@XXX:9999/db"/> 
    <property name="javax.persistence.jdbc.user" value="user"/> 
<property name="javax.persistence.jdbc.password" value="password"/> 
    <property name = "hibernate.show_sql" value = "true" />
</properties>
我的java类:

        //System.out.println(uid);
        List<User> lp = null;
        try {
            lp = em.createNativeQuery("SELECT iu FROM User iu WHERE iu.userId = ?", User.class)
                    .setParameter(1, uid).getResultList();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            writeLog(fw, e.getMessage());
        }
你能帮我找出错误吗


注意:如果使用具有相同连接和查询的PreparedStatement,则我没有任何问题,因此这不是权限问题

任一

<property name="hbm2ddl.auto">create</prop> 
<property name="hbm2ddl.auto">update</prop> 
创建

<property name="hbm2ddl.auto">create</prop> 
<property name="hbm2ddl.auto">update</prop> 
更新

您尝试将
HQL
查询与
EntityManager.createNativeQuery
方法一起使用。这是一个错误

请尝试以以下方式更正您的查询:

em.createNativeQuery(“从SCHEMA.USER中选择*其中USER\u ID=:usrid”,USER.class)
.setParameter(“usrid”,uid)
.getResultList();
如果对所有实体使用
模式
,则可以将其放入hibernate配置:


然后按以下方式更正实体定义:

@实体
@表(name=“USER”)
公共类用户{
// ...
}
然后更正您的查询:

em.createNativeQuery(“从{h-schema}用户中选择*,其中用户_ID=:usrid”,USER.class)
.setParameter(“usrid”,uid)
.getResultList();

顺便说一句,我建议你更正你的hibernate方言定义。你应该尽可能使用特定的方言。例如,如果您使用Oracle10g,您应该使用
org.hibernate.dialent.oracle10gdialent
。您仍然可以使用
org.hibernate.dialent.Oracle9iDialect
,但在
oracle10galent
中定义的一些新功能将不可用。

从用户iu中选择iu
???您是否有列名
iu
?您应该使用
SELECT*FROM User iu
它是相同的,也可以使用SELECT*。我也有同样的错误,嗯,我不知道这个属性,但在线搜索似乎使我能够创建或更新模式。表用户已经存在,您能解释一下吗?谢谢:)嗨,谢谢,现在它工作了!