0

我们正在尝试与 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 cannot be cast to org.eclipse.persistence.mappings.OneToOneMapping

我们确实需要能够解决两个方向。

干杯迈克尔

4

2 回答 2

1

请包括完整的异常堆栈。

在 NoSQL 的 2.6 开发流中修复了一个问题,它可能是相关的。

https://twitter.com/j_b_sutherland/status/339727557928833025

您使用的是什么版本,我会尝试至少 2.5 或最近的 2.6 开发版本。

于 2013-06-18T13:26:11.013 回答
0

您错过了 OneToMany 方面的 MappedBy Annontation。见http://www.objectdb.com/api/java/jpa/OneToMany


[编辑]

天哪,这是 NOSQL 抱歉。

ORM 不再是以前的样子了。

我不知道,但如果你真的在使用 JPA API,那么它可能是诀窍

于 2013-06-17T21:27:31.393 回答