有没有办法检查您尝试保存到表中的实例是否已存在于该表中,但您不知道这样的 ID:
MyObject instance = (MyObject) session.get(MyObject.class, new Integer(5));
是否有其他方法可以在不使用 id 的情况下检查您的对象是否在数据库中?
最佳答案
您必须首先根据属性决定何时认为两个 MyObject 实例相等,然后执行查询。
例如,假设您有一个带有 ID、名称和货币的 Country 实体。如果两个国家名称相同,则可以认为它们是平等的。但是,如果您有一个 Person 实体,则可能是他们的姓名、名字、出生日期和出生地点的组合使它们在功能上相等。
继续我的国家示例,这里是执行查询的方法:
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 .
关于java - 检查表 hibernate 中是否存在行对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5890051/