使用给定的字段对象 id 而不是对象本身存储 JPA 实体
Store JPA entity with given field object id instead of object itself
问题如下:
我们有实体:
@Entity
public class Feedback {
@Id
@GeneratedValue(generator="token")
private String id;
@ManyToOne
private Product product;
private String message;
// other fields
}
我们有一个服务器端点,它接收来自客户端的反馈。
以 multipart/form-based 格式收到的反馈,字段:
ProductId - product identifier
Message - feedback message
Some other fields
要设置 Feedback.product,我们需要从 JPA 加载 Product 对象 - 这可能很耗时,并且会产生不必要的查询。
是否可以存储实体,但传递产品 ID 而不是产品对象?
我们需要一些方法来修改 INSERT 查询。
我们将 EclipseLink JPA 与 Spring 和 Vaadin 结合使用。
使用EntityManager.getReference()
:如果尚未加载实体,它只会围绕 ID 创建一个延迟初始化的代理,而不会导致执行任何 SQL 查询。
问题如下:
我们有实体:
@Entity
public class Feedback {
@Id
@GeneratedValue(generator="token")
private String id;
@ManyToOne
private Product product;
private String message;
// other fields
}
我们有一个服务器端点,它接收来自客户端的反馈。 以 multipart/form-based 格式收到的反馈,字段:
ProductId - product identifier
Message - feedback message
Some other fields
要设置 Feedback.product,我们需要从 JPA 加载 Product 对象 - 这可能很耗时,并且会产生不必要的查询。
是否可以存储实体,但传递产品 ID 而不是产品对象? 我们需要一些方法来修改 INSERT 查询。
我们将 EclipseLink JPA 与 Spring 和 Vaadin 结合使用。
使用EntityManager.getReference()
:如果尚未加载实体,它只会围绕 ID 创建一个延迟初始化的代理,而不会导致执行任何 SQL 查询。