使用MongoDB“_id”字段作为DataNucleus中的主键

时间:2011-10-27 19:36:49

标签: mongodb jdo datanucleus

在过去使用Hibernate进行开发之后,我是MongoDB和JDO的新手。我试图坚持一个简单的对象,并利用MongoDB生成的“_id”作为持久化对象的主键。不幸的是,看起来DataNucleus正在生成“IDENTITY”字段以及Mongo在持久化文档中生成“_id”字段。因此,每个对象都持有两个唯一标识符。如何强制DataNucleus只使用生成的Mongo ObjectId?我的持久课程如下。

@PersistentCapable(identityType=IdentityType.DATASTORE)
public class HistoricalPrice {

private String ticker;
private Date day;
private double open;
private double close;
private double high;
private double low;
private long volume;

public HistoricalPrice(String ticker, Date day, double open, double close, double high, double low, long volume) {
    super();
    this.ticker = ticker;
    this.day = day;
    this.open = open;
    this.close = close;
    this.high = high;
    this.low = low;
    this.volume = volume;
}

1 个答案:

答案 0 :(得分:0)

将数据存储区标识“策略”定义为IDENTITY(而不是默认的NATIVE)。

@DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY)

,即与RDBMS使用某种内置机制所需的内容一致。