Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 休眠代理id值_Hibernate_Jpa - Fatal编程技术网

Hibernate 休眠代理id值

Hibernate 休眠代理id值,hibernate,jpa,Hibernate,Jpa,我发现有人提到类似的问题,但不是这个确切的问题 对于HibernateProxy实例(惰性加载),可以使@Id注释字段包含实际的Id值 我可以在调试器中看到ID是已知的,并且包含在相关的LazyInitializer实现中。但为什么它不也放在实际实体/代理对象的相应ID字段中 要做到这一点,唯一的方法显然是使用getId()访问器方法和@Access(AccessType.PROPERTY)精心设计的技巧。如果可以避免这种情况,那就太好了。不,这是不可能的,我个人会发现,代理中只有id被初始化,

我发现有人提到类似的问题,但不是这个确切的问题

对于HibernateProxy实例(惰性加载),可以使@Id注释字段包含实际的Id值

我可以在调试器中看到ID是已知的,并且包含在相关的LazyInitializer实现中。但为什么它不也放在实际实体/代理对象的相应ID字段中


要做到这一点,唯一的方法显然是使用getId()访问器方法和@Access(AccessType.PROPERTY)精心设计的技巧。如果可以避免这种情况,那就太好了。

不,这是不可能的,我个人会发现,代理中只有id被初始化,而其他属性总是空的(即使在代理初始化之后)


代理的要点是将所有方法调用委托给目标实例(如果对其使用了属性访问,则除了
getId
)。代理实例本身从来没有初始化过。

不,这是不可能的,我个人会发现代理中只有id被初始化,而其他属性总是空的(即使在代理初始化之后)


代理的要点是将所有方法调用委托给目标实例(如果对其使用了属性访问,则除了
getId
)。代理实例本身从未初始化。

实际Id值是什么意思?数据库中包含的id?是的,这就是我的意思。如果将其实际注入代理实例中,则更容易获得。(不使用getter和@AccessType注释等,但Hibernate实际上将id存储在其持久性包中。如果我没记错,您可以使用:
session.get(child.getParent().getId())获取完整的实体)
Parent是延迟启动的实体。实际Id值是什么意思?db中包含的Id?是的,这就是我的意思。如果它实际被注入到代理实例中,则更容易获取。(不使用getter和@AccessType注释等,但Hibernate实际上将id存储在其持久性包中。如果我没记错,您可以使用以下方法获取完整实体:
session.get(child.getParent().getId())
Parent是延迟启动的实体