【发布时间】:2011-01-06 13:26:49
【问题描述】:
假设我有一个对象 Person
long id
String firstName
String lastName
String address
然后我在我的应用程序的某处生成一个人对象。现在我想检查这个人是否存在于数据库中(= 名字/姓氏组合在数据库中)。如果不是 => 插入它。如果是,请检查地址是否相同。如果不是 => 更新地址。
当然,我可以做一些请求(首先,尝试使用名字/姓氏加载对象),然后(如果存在),比较地址。但是没有更简单、更清洁的方法吗?如果有几个不同的类并且不喜欢有这么多的查询。
我想用注解好像在说: 名字/姓氏 => 他们是主键。如果对象存在,请检查它们。
地址是你必须比较的参数,如果它保持不变。
Hibernate/JPA(或其他框架)是否支持类似的东西?
伪代码:
if (database.containsObject(person)) { //containing according to compound keys
if (database.containsChangedObject(person)) {
database.updateObject(person);
}
} else {
database.insertObject(person);
}
【问题讨论】:
标签: java database hibernate orm jpa