Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户_Hibernate_Hibernate Mapping - Fatal编程技术网

org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户

org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我刚开始冬眠 我正在尝试使用Hibernate和Oracle 10g DB连接创建一个在线用户调查。在解决了一系列问题后,我一直被这个问题困扰着: HTTP状态500-org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户[从用户中选择max(users.id)] 下面是UserDAO.java public class UserDAO { Session session = HibernateUtil.getSessionFa

我刚开始冬眠

我正在尝试使用Hibernate和Oracle 10g DB连接创建一个在线用户调查。在解决了一系列问题后,我一直被这个问题困扰着:

HTTP状态500-org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户[从用户中选择max(users.id)]

下面是UserDAO.java

public class UserDAO {
    Session session = HibernateUtil.getSessionFactory().openSession();
    public void save(User user){
        session.beginTransaction();
        session.save(user);
        session.getTransaction().commit();
        session.close();
    }
    public Integer getId (){
        String hql = "select max(users.id) from User users";
        Query query = session.createQuery(hql);
        List<Integer> results = query.list();
        Integer userId = 1;
                if (results.get(0) != null ) {
               userId = results.get(0) + 1;
                }
                return userId;
    }
} 
下面是HibernateUtil.java:

public class HibernateUtil {
     private static SessionFactory sessionFactory ;
     static {
        Configuration configuration = new Configuration().configure();
        StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
                                      .applySettings(configuration.getProperties());
        sessionFactory = configuration.buildSessionFactory(builder.build());
     }
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}  
下面是hibernate.cfg.xml:

 <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory>
      <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
      <property name="hibernate.connection.url">jdbc:oracle:thin:@apollo.vse.gmu.edu:1521:ite10g</property>
      <property name="hibernate.connection.username">name</property>
      <property name="hibernate.connection.password">password</property>
      <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
      <property name="hibernate.default_schema">name</property>
      <property name="show_sql">true</property>

    </session-factory>
    </hibernate-configuration>
请再帮我一次,伙计们!非常感谢

hibernate.cfg.xml

<mapping class ="com.demo.User"/>  

您错过了映射实体类

hibernate.cfg.xml

<mapping class ="com.demo.User"/>  

缺少映射实体类

更改行:

Configuration configuration = new Configuration().configure();
致:

编辑:请删除托管bean上的
@实体
学生服务
更改行:

Configuration configuration = new Configuration().configure();
致:


编辑:请删除托管bean上的
@实体
学生服务
,您需要按照@kakashiHatake的建议添加

如果使用Hibernate 5,则需要以这种方式配置会话工厂

sessionFactory = new Configuration().configure().buildSessionFactory();

您需要按照@kakashiHatake的建议添加

如果使用Hibernate 5,则需要以这种方式配置会话工厂

sessionFactory = new Configuration().configure().buildSessionFactory();

它不需要
addPackage(“com.demo”)
它不需要
addPackage(“com.demo”)
Hey@v.ladynev,我按照你和kakashiHatake的建议做了。先前抛出的错误已被消除,但现在有一个新错误提示我:HTTP Status 500-org.hibernate.exception.genericjdbception:无法提取ResultSet@CodeNinja请将完整堆栈跟踪作为代码添加到您的问题中!仅使用堆栈跟踪的第一部分不可能获得错误的原因!你好@v.ladynev,我已经在问题中添加了堆栈跟踪。请看一下,帮帮我!非常感谢!:)@CodeNinja这是Oracle驱动程序问题(或连接或数据库属性)。尝试更新Oracle驱动程序jar。解决了我的问题:)非常感谢您指定创建会话工厂的正确方法嘿@v.ladynev,我按照您和kakashiHatake的建议做了。先前抛出的错误已被消除,但现在有一个新错误提示我:HTTP Status 500-org.hibernate.exception.genericjdbception:无法提取ResultSet@CodeNinja请将完整堆栈跟踪作为代码添加到您的问题中!仅使用堆栈跟踪的第一部分不可能获得错误的原因!你好@v.ladynev,我已经在问题中添加了堆栈跟踪。请看一下,帮帮我!非常感谢!:)@CodeNinja这是Oracle驱动程序问题(或连接或数据库属性)。尝试更新Oracle驱动程序jar。解决了我的问题:)非常感谢您指定了创建会话工厂的正确方法