当前位置: 首页 > 面试题库 >

具有参数属性的Spring数据JPA查询

湛鸿
2023-03-14
问题内容

声明使用输入参数的属性作为查询参数的Spring数据JPA查询的最简单方法是什么?

例如,假设我有一个实体类:

public class Person {
    @Id
    private long id;

    @Column
    private String forename;

    @Column
    private String surname;
}

和另一类:

public class Name {
    private String forename;
    private String surname;

    [constructor and getters]
}

…那么我想编写一个Spring数据存储库,如下所示:

public interface PersonRepository extends CrudRepository<Person, Long> {
    @Query("select p from Person p where p.forename = ?1.forename and p.surname = ?1.surname")
    findByName(Name name);
}

…但是Spring数据/ JPA不喜欢我在?1参数上指定属性名称。

什么是最巧妙的选择?


问题答案:

该链接将为你提供帮助:支持SpEL表达式的Spring Data JPA M1。类似的例子是:

@Query("select u from User u where u.firstname = :#{#customer.firstname}")
List<User> findUsersByCustomersFirstname(@Param("customer") Customer customer);


 类似资料:
  • 声明使用输入参数属性作为查询参数的Spring data JPA查询的最简单方法是什么? ...但Spring data/JPA不喜欢我在参数上指定属性名。 最合适的选择是什么?

  • 我想要编写一个Spring Data JPA存储库接口方法签名,它将允许我查找实体中具有嵌入对象属性的实体。有没有人知道这是否可能,如果可能,如何实现?

  • 我们正在尝试为我们的新项目设置一个新的JTA事务配置。该项目利用Spring JPA和Spring Data与atomikos JTA事务管理器。 正如在atomikos教程中看到的那样,我们配置了XML。 目前,我们设法启动我们的服务器没有错误。 问题是,当我们尝试在@Transactional服务中使用jpaRepository持久化实体时,我们的日志显示atomikos jta事务正在发生并

  • 我有3个实体在我的数据库。实体A具有主密钥PK-A,实体B具有主密钥PK-B,实体C具有主密钥PK-C。 实体A与实体B具有1对多关系,实体B与实体C具有1对多关系 我想在Spring Data JPA中基于PK-A(实际上是实体B中的外键)查询实体C。有可能吗? 但这行不通。还有什么建议我可以试试吗?

  • 问题内容: 我必须在Hibernate,Jpa的应用程序(弹簧)中使用两个不同的数据库。我想直接将不同的表定义为不同的数据源。所以我使用两个不同的持久性单元,然后尝试使用 和 将不同的表放入不同的包中。但这不起作用。用第一个数据源来影响所有表。然后我尝试将诸如类的名称写入持久性XML文件 和it.two.app.domain.second.OtherTable 但是,当我运行Log时,说表’fir

  • 我有一个Spring Boot应用程序,使用Spring Data JPA查询MySQL数据库。 我需要得到一份经过一些参数筛选的课程列表。 我通常使用语法