用于OneToMany关系的java JPA NamedQuery
我试图在我的orm.xml
中创建一个named-query
,但我不确定它如何与集合一起工作。我在postgresql
中创建了一个查询,它提供了正确的输出。但是我不能把它翻译成我的orm.xml
postgresql
查询:
SELECT b.id, b.manufacturer, b.name, b.price, b.quantity, b.version, b.incentiveentity_id
from beverageentity b INNER JOIN customerorderentity_beverageentity c ON b.id = c.beverageentities_id
Group by b.id;
CustomerOrderEntity类别:
@Entity
public class CustomerOrderEntity {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private int id;
@Version
private int version;
private Date issueDate;
private boolean existIncentive;
@OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
private List<BeverageEntity> beverageEntities;
}
BeverageEntity等级:
@Entity
public class BeverageEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private int id;
private String name;
private String manufacturer;
private int quantity;
private double price;
@Version
private int version;
@ManyToOne(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
private IncentiveEntity incentiveEntity;
在我的脑海里。xml我编写了如下查询:
<named-query name="getAllOrders">
<query>SELECT b.id, b.manufacturer, b.name, b.price, b.quantity, b.version, b.incentiveEntity.id
from BeverageEntity b INNER JOIN CustomerOrderEntity.beverageEntities c ON b.id = c.id
Group by b.id
</query>
</named-query>
但是在编译之后,我得到了一个例外:
org.eclipse.persistence.exceptions.JPQLException
Exception Description: Problem compiling [SELECT b.id, b.manufacturer, b.name, b.price, b.quantity, b.version, b.incentiveEntity.id
from BeverageEntity b INNER JOIN CustomerOrderEntity.beverageEntities c ON b.id = c.id
Group by b.id
].
[123, 159] The collection-valued path 'CustomerOrderEntity.beverageEntities' cannot be resolved to a valid association field.. Please see server.log for more details.
共 (0) 个答案