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

JParepository:获取特定的惰性集合

容鸿畴
2023-03-14

如果我有一个实体person和一些惰性集合(carsbillsfriends,...),并且希望编写一个JpaRepository-method,该方法为我提供所有的人,这些人都渴望获取cars,这可能吗?

我知道人们可以在单个物体上做到这一点,但这在某种程度上可以在人的集合上做到吗?

共有1个答案

章威
2023-03-14

是的,Spring Data JPA提供了一个非常方便的@entitygraph注释。它可用于微调查询的已用entitygraph。每个JPA查询都使用一个隐式entitygraph,它根据关系fetchtype设置来指定哪些元素是热切提取的还是懒惰提取的。如果您想要获取一个特定的关系,您需要在EntityGraph中指定它。

@Repository
public interface PersonRepository extends CrudRepository<Person, Long> {
   @EntityGraph(attributePaths = { "cars" })
   Person getByName(String name);
}

关于实体图的Spring Data JPA文档

 类似资料:
  • 我一直在查看Laravel系列的文档和API,但似乎没有找到我想要的: 我想从集合中检索具有模型数据的数组,但只获取指定的属性。 例如,类似于,其中集合实际上包含用户的所有属性,因为它们在其他地方使用,但在这个特定位置,我需要一个包含userdata的数组,并且只包含指定的属性。 在拉雷维尔,似乎没有一个帮手来帮你我怎样才能用最简单的方法做到这一点?

  • 我有两个大表(每个表>一亿行),让我们把它们称为Parent和Child(Parent与Child有一个懒散的一对多关系)。当我使用联接提取时,查询速度非常慢,而且我还得到一个Hibernate警告“HH000104 firstresult maxresults specified with collection fetch Application in Memory”,因为我使用了一个限制。 因

  • 我想从最终结果中删除一些属性,并在这里找到了这个从Laravel集合中仅获取特定属性 这适用于顶层,但需要从相关项目中删除一些属性,例如用户有一个访问卡,并且访问卡的属性中有一些长文本详细信息。 我想从最终结果中删除该属性。使用链接中提到的方法是否可行?

  • 我的理解是,默认情况下,Hibernate将所有关系类型的FetchType设置为lazy。 在我的例子中,我有一个双向的OneToMany-ManyToOne关系,如下所示: 另一个问题是我如何得到一个有特定名字的孩子?是否可以通过存储库进行操作?还是需要getChildren(parentId)并迭代直到找到以特定方式命名的那个? 编辑:在一些建议之后,我继续这样实现了我的ChildRepos

  • 我正在寻找优化斯坦福大学CoreNLP情绪管道性能的方法。因此,a希望获得句子的情感,但只希望获得那些包含特定关键字作为输入的句子。 我尝试了两种方法: 方法1:StanfordCoreNLP管道用情感注释整个文本 我定义了一个注释器管道:标记化、ssplit、解析和情感。我在整篇文章中运行了它,然后在每个句子中查找关键字,如果它们存在,运行一个返回关键字值的方法。虽然处理过程需要几秒钟,但我并不

  • 我正在开发一个Struts2 Spring Hibernate webapp,我需要在检索一个对象或该对象的集合后初始化一个惰性集合。 用例 我有一个团队模型,其关系被热切地加载为员工(我认为这显然是一个集合)。反过来,员工模型有一个懒惰的关系注册表,我只需要一些特定的操作,所以我根本不需要急切地加载它。 现在。我调用我的(用Spring注入到我的Struts2控制器中),以便检索一个特定的已经加