有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用于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) 个答案