【问题标题】:Using MongoDB "_id" field as primary key within DataNucleus使用 MongoDB“_id”字段作为 DataNucleus 中的主键
【发布时间】:2011-10-27 19:36:48
【问题描述】:

在过去主要使用 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;
}

【问题讨论】:

    标签: mongodb jdo datanucleus


    【解决方案1】:

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

    @DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY)
    

    即与 RDBMS 上使用某些内置机制所需的一致。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 2019-03-12
      • 2021-05-02
      相关资源
      最近更新 更多