当前位置: 首页 > 知识库问答 >
问题:

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

卞昀
2023-03-14

我试图为父对象创建一个NamedQuery,它从数据库中检索所有可用的父对象,并有条件地在同一个查询中获取一些子对象。例如,查询应该检索所有父对象,并获取每个父对象的年=2012的子对象。不应该获取其余的子对象。我试图用左连接FETCH来玩,但结果是一些父对象也被排除在外。但话说回来,我是FETCH语句的新手。

有没有办法完成上述任务?非常感谢您的帮助。我的父对象的相关代码如下所示:

@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;

共有1个答案

师向文
2023-03-14

你应该能够实现你想要的使用@在哪里注释-你应该能够添加一个注释,如下所示到您的孩子的财产

@Where(clause="year=2012")

另外,请看这个问题:如何对Entity Bean@OneToMany关系应用默认限制

 类似资料:
  • 我读过Spring数据JPARepository:如何有条件地获取子实体。但我想使用方便的JPA注释,而不是手动连接所有子级。 假设我有以下型号: 获取凭据列表(credentialList)和操作列表(actionList)可能是一项耗时的操作(连接获取等)。我不想自动获取凭据列表,也不想自动获取操作列表。但当我访问它们时,我希望它们是一个空列表,而不是懒散的初始化异常。 即使我没有在查询中专门

  • 如何将其JPA实体配置为不获取相关实体,除非提供了特定的执行参数。 根据Spring的文件4.3.9。配置Fetch和LoadGraphs时,需要使用EntityGraph注释来指定查询的Fetch策略,但这并不能让我在运行时决定是否要加载这些实体。 我可以在单独的查询中获取子实体,但为了做到这一点,我需要将我的存储库或实体配置为不检索任何子实体。不幸的是,我似乎找不到任何关于如何执行此操作的策略

  • 问题内容: 我今天发现了JPA 2.0 Criteria API,并想学习它。只是通过一些例子,尝试动手。我的桌上有水果列: ID, 名称, 颜色, 尺寸, 味道。 常规的东西: 如何使用条件构建以下查询: 即如何: 同样,在获取实际数据之前先获取结果计数总是更好的选择。我如何首先获取结果计数? 还有什么地方可以通过几种不同类型的SQL查询获得有关“条件”的更多示例? 问题答案: 首先,您要对实体

  • 问题内容: 使用JPA 2 Criteria Join方法,我可以执行以下操作: 我该如何使用fetch方法做同样的事情,我希望Fetch接口具有用于路径导航的get方法,但它不会: 根据Hiberante文档,获取将返回错误的Join对象。 http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/querycr

  • 我有三个表/实体: > 游戏 网站游戏 地点 我必须在教义2中写查询,这将使所有游戏(作为对象)可用于特定的网站(得到这个特定的网站作为对象)。唯一的关系(多对一)在表/实体SiteGame中,它包含列/对象: 游戏/游戏id 站点/站点id 通常,原始SQL看起来像(并且可以工作): 这是我在教义中尝试过的,但失败了: 错误:路径表达式无效。必须是StateFieldPathExpression

  • 我正在使用hibernate在car和person表之间进行一对一映射。但一个人可能有车,也可能没有车。现在,在使用hibernate标准从person表中获取记录时,我只想获取那些拥有汽车的人,即person表中存在相应汽车表条目的条目。如何使用hibernate标准/别名实现这一点? 下面是一段代码。请提供获取结果所需的条件或别名: