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

Spring Data JPA 原生@Query,整个实体命名为 @Param

盖博简
2023-03-14

假设我有两个实体:

class User {
  @Id private int id;
  private String name;
  private int addressId;
}

class Address {
  @Id private int id;
  private String street;
}

是否可以这样做:

interface UserRepository extends CrudRepository<User, Integer> {
  @Query(nativeQuery=true,
    value=
      "select * from user "
    + "inner join address a on a.id = u.addressId "
    + "where a.street = :address.street")
  List<User> findByAddress(@Param("address") Address address);
}

即:接受一个实体(本例中为< code>Address)作为参数,但在原生查询中引用它的一个属性(本例中为< code>Address.street?

由于各种原因,我不能对这两个实体使用“正常”@ManyTo很多和JPA查询。

共有1个答案

公孙锋
2023-03-14

在这里找到答案:

https://spring.io/blog/2014/07/15/spel-support-in-spring-data-jpa-query-definitions

这可以用于:

+ "where a.street = :#{#address.street}")

奖励-对于< code>a.street in(...),使用集合投影:

https://docs.spring.io/spring/docs/4.3.10.RELEASE/spring-framework-reference/html/expressions.html#expressions-collection-projection

即:

+ "where a.street in(:#{#address.![street]})")
 类似资料:
  • 我有一个让我发疯的问题,在网上搜索了好几个小时,但找不到解决办法。我想在向列表添加新数据时,在我的recyclerview的第一个视图上设置动画。但是我不能,因为recyclerview是空的。 show_advices_fragment 列表项目活动主目录 还有test_item 在onResume中,我想我处于最后一个生命周期,回收人员视图已经在onCreateView中构建。我想在我到达恢复

  • 我是JPA 2.1的新手,最近才开始使用命名实体图。对于我的项目,我正在JPA 2.1中映射以下关系: 顺序 我想指示JPA加入并正确获取所有需要的数据。到目前为止,这对订单来说完美无缺 - 以下是我的实体(省略了getter和setter): 次序 订单明细 产品 产品线

  • 问题内容: 我使用NLTK从文本中提取命名实体: 但是我不知道如何将这些实体保存到列表中?例如– 谢谢。 问题答案: 返回嵌套对象,因此您必须遍历该对象才能到达网元。 看看带有正则表达式的命名实体识别:NLTK

  • 问题内容: 我是JPA 2.1的新手,仅开始使用最近命名的实体图。对于我的项目,我正在JPA 2.1中映射以下关系: 订单- > OrderDetail->产品-> ProductLine 我想指示JPA加入并正确获取所有需要的数据。到目前为止,这对于 Order- > OrderDetail-> Product来说 是完美的,但是到目前为止,我还没有添加一个Sub-Sub Graph来深入到Pr

  • 问题内容: 我正在寻找Java的简单但“足够好”的命名实体识别库(和字典),我正在处理电子邮件和文档并提取一些“基本信息”,例如:名称,地点,地址和日期 我一直在环顾四周,大多数似乎都是沉重的一面和完整的NLP项目。 有什么建议吗? 问题答案: 顺便说一句,我最近遇到了OpenCalais,它似乎具有我要照顾的功能。

  • 问题内容: 我正在将包含html命名实体的html块转换为使用编号的xml实体的xml兼容块,同时将所有html标记元素保留在原位。 这是通过测试说明的基本思想: 有人知道提供此功能的类吗?我可以编写一个正则表达式来遍历非元素匹配并执行以下操作: 但希望有一种更简单的方法或已经提供此功能的Class。 问题答案: 您尝试过JTidy吗? 虽然我认为它会修复某些情况下的HTML代码。