EclipseLink DDL 生成错误
Posted
技术标签:
【中文标题】EclipseLink DDL 生成错误【英文标题】:EclipseLink DDL Generation ERROR 【发布时间】:2013-02-11 03:53:31 【问题描述】:当Embeddable
类有另一个Entity
O/R 映射注释时,我无法使用EclipseLink
生成DDL。
如何为我的 O/R 映射生成 DDL?
公司.java
@Entity
public class Company implements Serializable
.....
@Embedded
private CompanyAddress address;
CompanyAddress.java
@Embeddable
public class CompanyAddress implements Serializable
.....
@Embedded
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "TOWNSHIP_ID", referencedColumnName = "ID")
private Township township;
Township.java
@Entity
public class Township implements Serializable
.....
当我生成时,我得到以下错误,
Exception [EclipseLink-195] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: The shared class org.ace.insurance.system.common.company.CompanyAddress must not reference the isolated class org.ace.insurance.system.common.township.Townsh
ip.
Mapping: org.eclipse.persistence.mappings.OneToOneMapping[township]
Descriptor: RelationalDescriptor(org.ace.insurance.system.common.company.CompanyAddress --> [DatabaseTable(COMPANY)])
【问题讨论】:
【参考方案1】:如果我理解正确,您希望 Township 成为一个正常的独立实体。在这种情况下,您应该从 CompanyAddress 的 township 字段中删除 @Embedded 注释。如果您希望它被嵌入,那么 Township 将需要一个 @Embeddable 注释而不是 @Entity。
【讨论】:
感谢您的帮助,我认为,JPA 规范允许Embedded
类与其他 Entity
进行 O/R 映射。以上是关于EclipseLink DDL 生成错误的主要内容,如果未能解决你的问题,请参考以下文章
DDL 生成和常规 persistence.xml 设置 (OpenJPA)
EclipseLink DataModifyQuery 不会抛出致命异常
Eclipselink 2.5 使用 Maven 生成元模型