0

我有一个控制数据 DB-TABLE 实体

@Table(name = "A")
class A {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)   
    @Column(name = "A_OID")
    private Long pk;
}

和一个引用上述 DB-TABLE 和其他一些的 DB-VIEW 实体

@Table(name = "A_VIEW")
class ARef {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)   
    @Column(name = "A_OID")
    private Long pk;

    private String value;
}

从其中value加入了一些。pk指的是同一行。我怎样才能保存我的实体B,指的是ARef,使用A,像这样:

class B {
    public ARef a;
}

A a = em.find(A.class, pk);
B b = new B();
b.a = a; // How to do this? Using pk somehow?

还有更多的东西,所以不能简单地ARef a = em.find(ARef.class, pk);代替。

我知道 OpenJPA 中有某种类型的“本机 SQL”支持,但这太低级了。

4

1 回答 1

0

First you should change ARef to public if You wanna use "b.a" to instantiate.

class B {
    public ARef a;
}

A a = em.find(A.class, pk);
B b = new B();
b.a = a;

Backing to the problem.. I use to pass the reference as a parameter from the controller class to view class

Like this:

A a = new A();
ARef aref = new ARef(a);
于 2013-01-18T14:01:10.817 回答