MongoDB中的@OneToMany和@ManyToOne以及JPA -EISOneToOneMapping无法转换为

时间:2013-06-17 15:28:54

标签: mongodb jpa eclipselink

我们正在尝试与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

我们真的需要能够解决这两个方向。

干杯 迈克尔

2 个答案:

答案 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,那么它可能就是一招