如何使用JPA Join表正确选择DTO投影?

时间:2018-03-08 02:30:31

标签: java hibernate jpa jpql

我有一个实体和一对一的关系。现在,我正在寻找使用投影从两个表中检索特定字段的最佳方法。

在我的第一次尝试中,我尝试过:

self.wrong_guess_frame = Frame(self.root, bg="red", width=150, height=150)
self.wrong_guess_frame.grid(row=0, column=1)

使用这种方式,我在Order实体中有一个构造函数,只检索这3个字段。但现在我有N + 1个查询。

第二个选项如下:

"SELECT NEW br.com.domain.order.Order( " +
                "o.id," +
                "o.description," +
                "p.payment) " +
                "FROM Order o

这很好但我必须创建一个DTO类。

我该怎么做:

"SELECT NEW br.com.domain.order.OrderDTO( " +
                    "o.id," +
                    "o.description," +
                    "p.status,
                     p.locationId,
                     p.value) " +
                    "FROM Order o JOIN  o.payment p

在两个实体中创建构造函数以加载所有属性是必要的吗?

0 个答案:

没有答案