Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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
Java 使用给定的字段对象id而不是对象本身存储JPA实体_Java_Jpa_Persistence - Fatal编程技术网

Java 使用给定的字段对象id而不是对象本身存储JPA实体

Java 使用给定的字段对象id而不是对象本身存储JPA实体,java,jpa,persistence,Java,Jpa,Persistence,问题如下: 我们有以下实体: @Entity public class Feedback { @Id @GeneratedValue(generator="token") private String id; @ManyToOne private Product product; private String message; // other fields } 我们有一个服务器端点,它接收来自客户端的反馈。 以多部分/基于表单的

问题如下:

我们有以下实体:

@Entity
public class Feedback {
    @Id
    @GeneratedValue(generator="token")
    private String id; 

    @ManyToOne
    private Product product;

    private String message;

    // other fields
}
我们有一个服务器端点,它接收来自客户端的反馈。 以多部分/基于表单的格式接收的反馈,包含以下字段:

 ProductId - product identifier
 Message - feedback message
 Some other fields
要设置Feedback.product,我们需要从JPA加载产品对象-这可能很耗时,并且会创建不必要的查询

是否可以存储实体,但传递产品id而不是产品对象? 我们需要一些方法来修改INSERT查询


我们将EclipseLink JPA与Spring和Vaadin一起使用。

用法:如果实体尚未加载,它只需围绕ID创建一个延迟初始化的代理,而不会导致执行任何SQL查询。

谢谢。如何检查实体是否存在?或者,如果没有具有此类id的实体,则强制getReference抛出异常?请使用find。但接下来会有一个查询,这是您想要避免的。