【问题标题】:Not loading the whole object不加载整个对象
【发布时间】:2014-11-17 20:28:46
【问题描述】:
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

【问题讨论】:

  • 不是很清楚:你是想只获取一个 Contact 属性还是什么?
  • 我想在更新我的问题后保存我的订阅对象。

标签: java spring hibernate jpa spring-data


【解决方案1】:

虽然 JPA 不允许这样做,但 Hibernate 的限制要少得多,并且允许您执行以下操作:

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

Hibernate 将使用 Contact FK 并将其填充到订阅中。

【讨论】:

  • 这样做有没有不好的隐藏行为?
  • 当你只想坚持的时候,从性能的角度来看是好的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
相关资源
最近更新 更多