하나의 특정 종류 안에서만 고유 한 기본 키를 만들 수있는 방법이 있습니까? (여기에 올바른 질문을하고 있다고 가정합니다 .- 사과하지 않으면 사과합니다.) "IdentityType.APPLICATION" 옵션이지만 "응용 프로그램"은 "가장 작은"사용 가능한 옵션 인 것 같습니다!각 종류에 고유 한 IdGeneratorStrategy
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class AuditTrail
{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long ID;
@Persistent
private Date createDate;
@Persistent
private Long AdminID;
public AuditTrail()
{
this.createDate = new Date();
}
public AuditTrail(Long AdminID)
{
this();
this.setAdminID(AdminID);
}
}
를하지만 새 항목을 만들 때 ID는 그래서 연락처,의 관리자, 약속, 서비스 등, 내 응용 프로그램의 모든 항목에서 고유 :
나는 다음이 모두 별개의 "테이블"(또는 종류?)이므로 OK는 서로 고유하지만 Audit Trail은 자체 카운팅 공간을 가질 수 있으므로 내 "실제"카운트를 방해하지 않습니다. 데이터 "
올바른 방법으로이 질문을합니다.이 Entity/Kind/Property/Key 항목을 실제로 알아 내려했지만 실제로 어떻게 모든 것을 이해했는지 확신 할 수 없습니다. ctually 후드에서 작동합니다!
이드는 모든 종류에서 유일하게 고유하다고 생각합니까? 생성 된 ID는 각 종류마다 고유합니다. 그렇지 않으면'allocate_ids '와 같은 기능은 종류간에 겹치는 id 범위를 할당 할 수 있기 때문에 작동하지 않습니다. –
정확한 용어를 사용하고 있지 않을 수 있습니다 ... 내 응용 프로그램 내에서 '연락처'테이블 (종류)의 단일 행에 대한 ID가 예를 들어 '약속의 한 행과 충돌하지 않는 것 같습니다 '테이블 (종류). 실제로 "일화"였지만 응용 프로그램의 첫 번째 행이 "admin"이고 번호가 31014이고 다음으로 "연락처"는 29003이고 세 번째는 31034의 ID를 가진 "사용자"였고, 그리고 내가 볼 수있는 한 충돌은 없습니다! – johnvdenley
예, 충돌이 발생하지 않습니다. 이 정수는 크고 희소합니다. 64 비트 서명과 같은 것입니다. (키의 id 정의에 대한 특정 참조를 찾을 수 없습니다). 귀하의 제한된 관찰에서 그렇습니다. 그것은 모든 종류에 걸쳐 독특 할 수 있습니다. 다음은 테스트입니다. 수동으로 동일한 정수 ID를 가진 두 가지 종류의 키를 만듭니다. 효과가있을 것입니다. (당신이 객관화로 그런 일을 할 수 있다고 가정 할 때) –