1

3つのクラスを設定しました。それぞれとClassAの FK を持っています。私は私の中に次の行を入れましたClassBClassCClassA

    @Entity
    @Table(name="ClassA")
    public class ClassA{
    //rest of the code

        @OneToOne(fetch=FetchType.LAZY, targetEntity=ClassB.class)
        @JoinColumn(name="ClassB_ColA", columnDefinition="ClassB_ColA", updatable=false, insertable=false)
        private ClassB classB;

        @OneToOne(fetch=FetchType.LAZY, targetEntity=ClassC.class)
        @JoinColumn(name="ClassC_ColA", columnDefinition="ClassC_ColA", updatable=false, insertable=false)
        private ClassC classC;
}

そして、次の例外が発生しています

Exception [EclipseLink-60] (Eclipse Persistence Services - 2.1.1.v20100817-r8050): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The method [_persistence_set_classB_vh] or [_persistence_get_classB_vh] is not defined in the object [project.persistence.entities.ClassA].
Internal Exception: java.lang.NoSuchMethodException: project.persistence.entities.ClassA._persistence_get_classB_vh()
Mapping: org.eclipse.persistence.mappings.OneToOneMapping[classB]
Descriptor: RelationalDescriptor(project.persistence.entities.ClassA --> [DatabaseTable(ClassA)])

少し検索したところ、静的な読み込みなどを振ることについて話している古いスレッドがいくつか見つかりました。誰かが解決策を提案できますか?

PS: weblogic 10 と eclipselink2 を使用しています。

4

2 に答える 2

0

コピー&ペースト属性名による複製を検討してみませんか?

..
private ClassB classB;
..
private ClassB classB;
于 2012-08-23T07:57:38.853 に答える
0

この問題は、オブジェクトの静的な揺れに関連していました。それで、私がしたことは、ローディングメカニズムを変更したことです。

から、と のためにClassB何もロードしませんでした。遅延ロードを続けました。ClassAClassA

于 2012-09-06T14:02:58.127 に答える