检查是否行对象在表中存在冬眠

检查是否行对象在表中存在冬眠

问题描述:

有没有一种方法来检查,如果你想保存到餐桌的情况下该表已经存在,但是你不知道这样的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