여기에 설명 : http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/Morphia가 함수 호출에서 반환 된 값으로 필드 값을 설정하는 방법은 무엇입니까? 내가 전략을 사용하여 "자동 증가"ID를 구현하고있어
기본적으로 seqId
필드의 값은 보조 컬렉션 카운터를 업데이트하고 증가 반환하는 유틸리티 함수를 호출하여 설정 값. 훌륭해.
제 문제는 Morphia와 함께 사용하기 위해이 문제를 매핑하는 것입니다. 이 튜토리얼과 같이 (예 : 쉘에서와 같이) 삽입을 수행 제안 :
db.users.insert(
{
seqId: getNextSequence("userid"),
name: "Sarah C."
}
나는 기본적으로 모르핀 위의 같은 인서트로 번역 무언가에 POJO seqId
필드를 설정하는 식으로 뭔가를 찾고 있어요 내가 save()
을 호출 할 때.
내 POJO는 다음과 같습니다
@Entity
public class User {
@Id
private Long id;
// THIS IS THE FIELD I WANT TO AUTO-INCREMENT
private Long seqId;
private String name;
...
}
질문은 : 어떻게 모르핀은 함수 호출에 의해 반환되는 값으로 필드의 값을 설정하기 위해?
이 함수 호출을 수행하고 값을 얻은 다음 @PrePresist
주석을 사용하여 + _id 필드에 설정했습니다. MongoDB를 하나만 호출하는 대신 여러 번 호출하는 것, 내 모델 객체가 데이터 저장소에 대한 참조를 가지고 있지 않다는 점을 감안할 때 몇 가지 단점이 있습니다.
이것이 가능합니까? 어떤 제안?
최신 Java 드라이버를 사용하여 MongoDB 2.6.6을 사용 중입니다.
감사합니다.
추신 : 대용량 환경에서는 자동 증가가 권장되지 않습니다. 이 특정 시나리오에 대해서는 어쨌든 필요합니다.
감사합니다. 나는 현재 그 첫 번째 서버 왕복없이 내가 원하는 것을 성취 할 방법이 없다고 생각하지만 이것은 "엔티티 객체의 데이터 저장소"문제에 대한 좋은 해결 방법입니다. –