hibernate查询在java spring中不起作用

时间:2011-03-19 02:44:22

标签: java hibernate spring

我有这个代码,工作正常

Registration person = (Registration) session.get(Registration.class, 8);
      person.setConfirmed(true);
      session.save(person);

但这不起作用,说映射错误

String query = "FROM registration WHERE user_id = 8";
 Query query2 = session.createQuery(query);
 Registration person = (Registration) query2.uniqueResult();
 person.setConfirmed(true);
 session.save(person);

这是我的注册类

@Column(name = "user_id")
    public Integer getUserId() {
        return userId;
    }

2 个答案:

答案 0 :(得分:4)

因为您使用的是非本机查询语言,所以可能需要类似

的内容
String query = "FROM Registration WHERE userId = 8";

答案 1 :(得分:2)

@Pasha,以下代码是SQL查询而不是HQL查询。

String query = "FROM registration WHERE user_id = 8";
Query query2 = session.createQuery(query);

如果必须运行SQL查询,请改用以下内容:

String query = "FROM registration WHERE user_id = 8";
Query query2 = session.createSQLQuery(query); 
query2.executeUpdate();

要将SQL查询转换为HQL查询,假设Registration类具有 userId 字段:

String query = "FROM registration WHERE userId = 8";
Query query2 = session.createQuery(query); 
query2.executeUpdate();

有关完整示例,请参阅以下指南:http://krams915.blogspot.com/2011/03/spring-hibernate-one-to-many.html