没有加载整个对象

时间:2014-11-17 20:28:46

标签: java spring hibernate jpa spring-data

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

1 个答案:

答案 0 :(得分:3)

虽然JPA不允许,但Hibernate的限制性要小得多,并允许您执行以下操作:

Contact contaCct = new Contact();
contact.setId(id_contact);
Subscription subscription = new  Subscription( contact , ...);

Hibernate将使用Contact FK并在Subscription维护中填充它。