Використання MongoDB "_id" поля як первинного ключа в DataNucleus

Я є новим для 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;
}
0

1 Відповіді

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

@DatastoreIdentity(strategy=IdGeneratorStrategy.IDENTITY)

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

0
додано