考虑以下JPA实体:
@Entity
class Entity {
@Id
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Entity entity = new Entity();
entity.setName('foo');
在事务内部,我想实现以下目的:如果没有名称为entity
的其他实体存在,则将实体foo
保留到数据存储区,或者如果已存在则抛出异常名为Entity
的实体foo
。
实现这一目标的最惯用/最佳方法是什么? (对于什么是值得的,我正在使用Data Engine进行AppNucleus'JPA实现。)
答案 0 :(得分:2)
每当您创建一个明确指定密钥的新实体时,您必须检查数据存储区中是否已存在具有相同密钥的实体。
创建一个方法,如:
public Entity getEntityByName(String name) {
// First try to load from datastore
// If exists, return that
// If doesn't exist, return a new instance
}
无论何时您想使用Enity
,都可以通过此方法获取它。