人有“语言”字段的外键。如果我只获得一种语言的PK(“json.get(”language“)。asInt())并想插入一个新的人物,我怎么能避免加载整个”语言“对象?
@Entity
public class Person {
String prename;
String lastname;
Language language;
}
Person p = new Person("Robert", "Meyer");
Language l = JPA.em().find(Language.class, json.get("language").asInt();
p.setLanguage(l);
是否可以在不加载整个Language对象的情况下进行?
答案 0 :(得分:3)
您可以使用EntityManager#getReference()。
获取一个实例,其状态可能会被懒散地取出。如果数据库中不存在请求的实例,则在首次访问实例状态时将引发EntityNotFoundException。
Person p = new Person("Robert", "Meyer");
Language l = JPA.em().getReference(Language.class, json.get("language").asInt();
p.setLanguage(l);