Java Hibernate:session.byNaturalId().using().load()返回标识符为空的实例

Java Hibernate:session.byNaturalId().using().load()返回标识符为空的实例,java,sql,database,hibernate,jdbc,Java,Sql,Database,Hibernate,Jdbc,我对Hibernate有问题。我的目标是基于一个名称创建一个实体实例,然后直接检索完整实例(所有属性值包括bigint标识符),因为出于某些原因我需要知道它。当我在两个不同的会话中使用自定义hql查询时,它已经工作了,但我认为在同一会话中使用@naturaid这样做会更干净。我正在使用两个不同的事务,load()确实检索实例,但标识符没有正确的值。相反,它总是零 我就是这样使用它的: character = session.byNaturalId(Character.class).using("

我对Hibernate有问题。我的目标是基于一个名称创建一个实体实例,然后直接检索完整实例(所有属性值包括bigint标识符),因为出于某些原因我需要知道它。当我在两个不同的会话中使用自定义hql查询时,它已经工作了,但我认为在同一会话中使用
@naturaid
这样做会更干净。我正在使用两个不同的事务,
load()
确实检索实例,但标识符没有正确的值。相反,它总是零

我就是这样使用它的:

character = session.byNaturalId(Character.class).using("charname", charname).load();
charname
是我用自然id注释标记的列的名称

谢谢你的帮助