java - 在序列化期间从实体中删除代理代码

标签 java hibernate jpa

我有一个服务器和客户端,它们都是基于 Java 的,并且通过 RMI 相互通信。服务器的数据访问层是用 JPA 和 Hibernate 实现的,实体通常用作参数。

客户端没有 Hibernate 代码并且动态代码下载被禁用,因此当服务器向其客户端发送实体时,必须发送实际实体,而不是代理。此外,实体必须按原样发送,无需预加载所有延迟获取的属性,因为在大多数情况下,客户端永远不需要它们

是否可以使用 Hibernate 实现这些要求?

最佳答案

您可以获取查询中的所有属性

来自文档

If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties in the first query immediately using fetch all properties.

from Document fetch all properties order by name

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

或者在你的映射中使用 eagle fetch...

关于java - 在序列化期间从实体中删除代理代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17619536/

相关文章:

java - Sherlock FragmentActivity 无法解析为类型

java - Hibernate:如何列出所有映射的对象?

java - 尝试在 hibernate 中获取结果集时抛出异常 "Cannot cast ' java.lang.Object[ ]' to"

java - JPA,结合@JoinColumn 和@Column

java - 我在使用 JPA 从 mssql 的关系表中获取数据时遇到问题

java - 如何在 Java 代码中将调用或方法编写为正则表达式?

java - 将 Excel 数据读入 Java 时出现格式问题

spring - 相当于 spring-data-jpa 中的标准

java - 查询异常 : A reference class must be provided

java - Spring 社交Facebook : "The OAuth2 ' state' parameter doesn't match"