我有这个代码,工作正常
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;
}
答案 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