public class Subscription implements java.io.Serializable {
private Integer id_subscription;
private Contact contact;
// ...
public Subscription (Contact contact, ...) {
this.contact = contact;
...
}
// ...
现在我只有id_contact
所以我必须加载整个对象Contact
Contact contact = contact_resposetory.findOne(id_contact);
Subscription subscription = new Subscription( contact , ...);
// ...
subscription_resposetory.save(subscription );
我的问题是没有解决方案我们可以直接使用Contact
的主键而不是加载整个对象?因为在Subscription
表中的数据库中,id_contact
只是FK
。
答案 0 :(得分:3)
虽然JPA不允许,但Hibernate的限制性要小得多,并允许您执行以下操作:
Contact contaCct = new Contact();
contact.setId(id_contact);
Subscription subscription = new Subscription( contact , ...);
Hibernate将使用Contact FK并在Subscription维护中填充它。