我们正在尝试与EclipseLink / MongoDB建立@OneToMany和@ManyToOne关系:
@OneToMany声明如下所示:
@Entity
@NoSql(dataType = "ServiceCatalog", dataFormat = DataFormatType.MAPPED)
public class ServiceCatalog {
@Id
@GeneratedValue
@Field(name = "_id")
private String id;
@OneToMany
private List<ServiceCatalogNeedCategory> serviceCatalogNeedCategories;
…
另一方面,@ ManyToOne声明:
@Entity
@NoSql(dataType = "NeedCategory", dataFormat = DataFormatType.MAPPED)
public class ServiceCatalogNeedCategory {
@Id
@GeneratedValue
@Field(name = "_id")
private String id;
@Field(name = "title")
private String Title;
@ManyToOne(fetch=FetchType.LAZY)
private ServiceCatalog serviceCatalog;
...
以上配置会导致以下错误: org.eclipse.persistence.eis.mappings.EISOneToOneMapping无法强制转换为org.eclipse.persistence.mappings.OneToOneMapping
我们真的需要能够解决这两个方向。
干杯 迈克尔
答案 0 :(得分:1)
请包含完整的异常堆栈。
在NoSQL的2.6 dev流中修复了一个问题,它可能是相关的。
https://twitter.com/j_b_sutherland/status/339727557928833025
您使用的是什么版本,我会尝试至少2.5或最近的2.6开发版。
答案 1 :(得分:0)
你错过了OneToMany方面的MappedBy Annontation。 见http://www.objectdb.com/api/java/jpa/OneToMany
<强> [编辑] 强>
天哪,这是NOSQL抱歉。
ORM已经不再像以前那样了。
我不知道,但如果您真的使用JPA API,那么它可能就是一招