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を参照して保存するにはどうすればよいですか。ARefA

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

「ba」を使用してインスタンス化する場合は、最初に ARef を public に変更する必要があります。

class B {
    public ARef a;
}

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

問題に戻る..参照をパラメーターとしてコントローラークラスからビュークラスに渡すために使用します

このような:

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