EclipseLink OneToOne映射错误

时间:2012-08-22 23:52:50

标签: java jpa persistence weblogic eclipselink

我已经设置了3个班级。 ClassA的FK分别为ClassBClassC。我在ClassA

中列出了以下几行
    @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)])

我做了一点搜索,我可以找到一些old threads关于挥动静载或其他东西的说法。有人可以提出解决方案吗?

P.S: 我正在使用weblogic 10和eclipselink2

2 个答案:

答案 0 :(得分:0)

如何考虑复制粘贴属性名称重复?

..
private ClassB classB;
..
private ClassB classB;

答案 1 :(得分:0)

问题与静态挥动物体有关。所以我做了什么,我改变了加载机制。

ClassB开始,我没有为ClassAClassA加载任何内容,我保留了延迟加载..它运行正常。