在过去使用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;
}
答案 0 :(得分:0)
将数据存储区标识“策略”定义为IDENTITY(而不是默认的NATIVE)。
@DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY)
,即与RDBMS使用某种内置机制所需的内容一致。