检查是否行对象在表中存在冬眠
问题描述:
有没有一种方法来检查,如果你想保存到餐桌的情况下该表已经存在,但是你不知道这样的ID:检查是否行对象在表中存在冬眠
MyObject instance = (MyObject) session.get(MyObject.class, new Integer(5));
有没有其他的方法来检查你的对象是否在数据库中,而不使用ID?
答
您必须先决定何时考虑两个MyObject实例在属性方面相等,然后执行查询。
例如,假设您的国家/地区实体具有ID,名称和货币。如果两个国家具有相同的名称,则可以认为它们是平等的。但是,如果你有一个Person实体,它可能是他们的姓名,firstName,出生日期和出生地点的组合,使他们在功能上是平等的。
要继续我的国家例如,这里是如何执行的查询:
String hql = "select Country c where c.name = :theName";
Query q = session.createQuery(hql);
q.setString("theName", theCountryIWantToSave.getName());
Country c = query.uniqueResult();
if (c != null) {
// a country with the same name as theCountryIWantToSave already exists
}
这是很基本的东西,真的。您应该阅读Hibernate user guide。