有什么办法来创建一个主键,这只是一个特定种类内唯一的(假设我问正确的问题在这里 - !道歉,如果不是),我发现有一个“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在我的应用程序中的所有项目唯一的,这样一联系,管理员,预约,服务等都是单独的“表格”(或种类),所以它们都是唯一的,但审计追踪可以有自己的计数空间,所以它不会干扰我的“实际数据”
我在正确的方式问这个,我真的试图找出这个实体/类/属性/关键的事情,但我不知道我完全理解它是如何全部在引擎盖下正常工作!
是什么让你觉得ID只是在所有类型中都是唯一的?生成的id对每种类型都是唯一的。否则像'allocate_ids'这样的设施就无法工作,因为你可以分配不同类型的id范围。 –
我可能没有使用正确的术语... 我说,在我的应用程序中的“联系人”表(实物)单行ID似乎从来没有与发生冲突,例如在“约定单行'桌子(善良)。这真的是“轶事”,但我注意到我的应用程序中的第一行是“admin”,其编号为31014,接下来是“联系人”,即29003,第三行是“用户”,ID为31034,就我所见,没有冲突! – johnvdenley
是的,不太可能发生冲突。这些int大而稀疏。它像一个签名的64位。 (可以找到关键的id定义的特定引用)。所以,从你有限的观察来看,它可能是各种独特的。这里是一个测试,手动创建一个具有相同整数ID的两种不同类型的密钥。它会工作。 (假设你可以用物化来做这样的事情) –