org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户
我刚开始冬眠 我正在尝试使用Hibernate和Oracle 10g DB连接创建一个在线用户调查。在解决了一系列问题后,我一直被这个问题困扰着: HTTP状态500-org.hibernate.hql.internal.ast.QuerySyntaxException:未映射用户[从用户中选择max(users.id)] 下面是UserDAO.javaorg.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
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。解决了我的问题:)非常感谢您指定了创建会话工厂的正确方法