【问题标题】:HQL Query for Specific Nested Object in a query查询中特定嵌套对象的 HQL 查询
【发布时间】:2021-09-21 13:05:59
【问题描述】:

我有一个类,它有其他对象作为它的成员字段。 例如:

class Orders{
    private Integer code;
    @OneToOne(fetch=FetchType.EAGER)
    @JoinColumn(name="code", nullable=false)
    private Category category;
    private PaymentType pt; 
}

class Category{
    private Integer id;
    @OneToMany(fetch=FetchType.EAGER)
    @JoinColumn(name="id", nullable=false)
    private Brands brand;
    ....
}

class Brands{
    private Integer id;
    private String brandName; 
}

我需要获取该特定订单的所有品牌。

如何通过 Hql 中的 Orders 表只获取品牌?

【问题讨论】:

    标签: java hibernate spring-mvc hql


    【解决方案1】:

    关系是一对一的吗?如果是这样,您应该可以通过以下方式查询它:

    @Query("SELECT FROM Orders orders.category.brand WHERE ...")
    Brands findBrandBy(...);
    

    如果您使用的是 Spring 数据。

    【讨论】:

    • 关系被多对一映射,相应地一对一映射。我正在使用 Spring mvc
    • 我在想一种方法,我可以在 repo 中使用查询,而不是在 getter 之上。
    • 这个例子是为了放在 spring 存储库中,我的方法名称可能会产生误导。至于多对一关系应该没有任何问题,只需从方法返回 List 即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2013-06-03
    • 2021-01-24
    相关资源
    最近更新 更多