读取Hibernate实体标识值

Lan*_*uhn 5 java hibernate

Hibernate是否有用于读取实体身份字段值的API?在我的例子中,这将是Serializable由注释的字段返回的值@Id.例如,假设我有一个Person实体:

class Person {
    @Id private long id;
    // ... other fields, getters/setters, etc ...
}

Person p = new Person();
p.setId(42L);

Hibernate.unknownFunction(p); // returns 42L
Run Code Online (Sandbox Code Playgroud)

当然,我可以阅读注释以@Id自己找到该字段,但这似乎可能是内置的东西.

Boz*_*zho 2

session.getIdentifier(object)

返回与此会话关联的给定实体的标识符值。如果给定实体实例相对于此会话是瞬态的或分离的,则会引发异常。

该对象需要有一个ID,并与当前会话相关联,否则会抛出异常。但我认为这是合乎逻辑的。