2012-08-22 56 views
1

我已經設置了3個類。 ClassA的FK分別爲ClassBClassC。我都忍了以下線在我ClassAEclipseLink OneToOne映射錯誤

@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

+0

你的列定義是錯誤的。看看[文檔](http://docs.oracle.com/javaee/5/api/javax/persistence/JoinColumn.html)。 – siebz0r

+0

這是怎麼回事?我正在使用'OntToOne'映射而不是'manyToOne' –

+0

@ siebz0r在您的A類中複製了B類。 –

回答

0

該問題與靜態波動對象有關。所以我做了什麼,我改變了加載機制。

ClassB,我沒有加載任何東西ClassAClassA,我保持懶惰加載..它工作正常。

0

如何通過複製粘貼的屬性名稱重複考慮?

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