我已經設置了3個類。 ClassA
的FK分別爲ClassB
和ClassC
。我都忍了以下線在我ClassA
EclipseLink 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
你的列定義是錯誤的。看看[文檔](http://docs.oracle.com/javaee/5/api/javax/persistence/JoinColumn.html)。 – siebz0r
這是怎麼回事?我正在使用'OntToOne'映射而不是'manyToOne' –
@ siebz0r在您的A類中複製了B類。 –