gpt4 book ai didi

java - JPA:有条件地获取一些子对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:33:51 25 4
gpt4 key购买 nike

我正在尝试为 Parent 对象创建一个 NamedQuery,它从数据库中检索所有可用的 Parent 对象,并有条件地获取一些Child - 同一查询中的对象。例如。查询应检索所有父对象并为每个父对象获取具有 year=2012 的子对象。不应获取其余的子对象。我尝试使用 LEFT JOIN FETCH 来解决问题,但结果是一些父对象也被排除在外。但话又说回来,我是 FETCH 语句的新手。

有什么方法可以实现上述任务吗?任何帮助深表感谢。下面列出了我的Parent对象的相关代码:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(namespace = "xxx/xxx/xxx/xxx", name = "Parent")
@XmlRootElement(namespace = "xxx/xxx/xxx/xxx")
public class Parent implements Serializable {
private static final long serialVersionUID = 1L;

/**
*/
.....................
/**
*/

@Column(name = "status")
@Basic(fetch = FetchType.EAGER)
@XmlElement
String status;
/**
*/
/**
*/
@OneToMany(mappedBy = "parent", cascade = { CascadeType.REMOVE }, fetch = FetchType.LAZY)
@XmlElement(name = "", namespace = "")
java.util.Set<xxx.xxx.xxx.Child> children;

最佳答案

您应该能够使用@Where 注释实现您想要的效果——您应该能够只向您的子属性添加如下注释

@Where(clause="year=2012")

另请参阅此问题:How to apply a default-restriction on Entity-Bean @OneToMany Relationships

关于java - JPA:有条件地获取一些子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10529115/

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