gpt4 book ai didi

mysql - 集合映射的 where 子句

转载 作者:行者123 更新时间:2023-11-29 03:02:09 25 4
gpt4 key购买 nike

我正在尝试使用 where 子句从两个不同的表中获取数据。我能否在映射类的属性上编写 where 子句。

例如:我有两个类(class)

Class box{

private int id;
private String name;
private int colorId;
private int size;

//getter
//setter

}


class color{

private int colorId;
private String colourName;
Private set<box> boxes;



}

映射:

 <class name="box" table="box">
<id name="id" column="id">
<generator class="native"/>
</id>
<propert name="name" column="name"/>
<property name="size" column="size"/>
</class>

<class name="color" table="color">
<id name="id" column="id">
<generator class="native"/>
</id>
<propert name="name" column="name"/>
<set name="boxes" table="box" lazy="false" fetch="join">
<key><column name="colorId" /></key>
<one-to-many class="box" not-found="ignore"/>
</set>
</class>

我可以写一个像FROM COLOR where boxes.size > 10这样的HQL吗

我如何使用 HQL 或任何其他方法实现此目的。请建议。

最佳答案

使用 HQL 你可以尝试...

JPA.em().createQuery("SELECT box FROM Color color JOIN color.boxes box where box.size > 10 and color.colorId = ?");

因此对于给定的颜色,您可以获得所有具有 size > 10 的框。如果您想要所有 box.size > 10 的框,则不需要连接。

关于mysql - 集合映射的 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com