Использование поля "_id" MongoDB в качестве первичного ключа в DataNucleus - PullRequest
0 голосов
/ 27 октября 2011

Я новичок в MongoDB и JDO после того, как в основном занимался разработкой с Hibernate в прошлом. Я пытаюсь сохранить простой объект и использовать сгенерированный «_id» из MongoDB в качестве первичного ключа для сохраняемого объекта. К сожалению, похоже, что 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 голосов
/ 28 октября 2011

Определите «стратегию» идентификации хранилища данных как IDENTITY (в отличие от значения по умолчанию NATIVE).

@DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY)

То есть в соответствии с тем, что потребуется СУБД для использования какого-либо встроенного механизма.

...