如何存储具有关系的实体而不用hibernate加载到内存中的其他实体

时间:2015-08-31 08:56:37

标签: hibernate java-ee jpa

我有两个实体:MyClassA和MyClassB。第二个是大而且俗气。

@Entity
@Table(name = tableA)
public class MyClassA {

    @Id
    private Long id;

    @OneToOne
    @JoinColumn(name = "id_b")
    private MyClassB connetctedB;

    ... //some other values
}

我想创建和存储abouve类的新实体。在我的服务类中,我传递了一些MyClassB实体的值和id。我看到的常用解决方案是:

public void createNewA(long idB, String name) {
    MyClassA a = new MyClassA();
    a.setName(name);

    MyClassB b = getBByid(idB); // <- I want to avoid this
    a.setConnetctedB(b);

    entityManager.persist(a);
}

问题在于MyClassB是havy并且操作getBByid消耗了大量资源。在这种情况下,如何创建和存储MyClassA的新对象?我已经是MyClassB的id,所以它应该很容易,但我必须使用本机查询,不幸的是hibernate不支持本机插入。

0 个答案:

没有答案