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

Spring数据JPA-通过映射对象查找

狄宏大
2023-03-14

在我的遗留应用程序中,我有一个国家表、状态表和一个国家和州的映射表,几乎没有额外的列。

我创建了这样一个实体类。

class CountryStateMapping {

  @Id
  private long id;

  private Long countryId;

  @OneToOne
  @JoinColumn(name="state_id")
  private State state;

  //getters seters

}

我的仓库。

public interface CountryStateMapping extends JpaRepository<CountryStateMapping, Long>{
   Optional<CountryStateMapping> findByStateId(long stateId);
   Optional<CountryStateMapping> findByState(State state);
}

我想检查映射表中是否存在状态。以下两种方法都不起作用。

countryStateMapping.findByStateId(long stateId)
countryStateMapping.findByState(State state)

正确的方法是什么?

共有2个答案

易焱
2023-03-14

尝试在下面的id中加下划线;

public interface CountryStateMapping<CountryStateMapping, Long>{
   Optional<CountryStateMapping> findByState_Id(long stateId);
   Optional<CountryStateMapping> findByState(State state);
}
公西国发
2023-03-14

这不是我的正确感觉。正确的方法是

    public interface CountryStateMappingRepository extends JpaRepository<CountryStateMapping, Long>  {
               Optional<CountryStateMapping> findByStateId(long stateId);
               @Query("select s.something from State s" )
               Optional<CountryStateMapping> findByState(State state);
            }

这意味着两件事

  1. 通过扩展JpaRepository,我们得到了一堆通用的CRUD方法来创建、更新、删除和查找

2.它允许Spring扫描这个接口的类路径,并为它创建一个Spring bean。

您还需要一些配置。为此,您需要创建一个配置类来与数据源一起使用。您可以找到许多示例来做同样的事情,其中一个就是https://www.baeldung.com/the-persistence-layer-with-spring-data-jpa.

还可以使用@Query注释使用自定义查询和简单查询。

谢谢

 类似资料:
  • 在spring数据JPA-Spring Boot应用程序中,我需要在两个表之间进行一对一映射。我在 一对一映射Spring数据示例 它运行良好,并在第二个表(图书详细信息)中插入记录。在我的应用程序中,我需要多次更新第二个表中的记录(如示例中所示,不更新pages列)。 我正在读取book对象,然后更新bookdetail字段,并使用存储库(extends Crudepository)将其保存回原

  • 我正在从React中的外部api接收数据 我有一个目标 我试图通过它进行映射,以便能够渲染数据,即它在屏幕上显示的“bitfinex:1.2、blockfi:2.3等” 但是我得到了一个错误,说它不是一个函数。 我做错了什么?

  • 主要内容:ORM框架,映射方向,映射类型对象关系映射(ORM)是一种功能,用于通过将对象状态映射到数据库列来开发和维护对象和关系数据库之间的关系。 它能够轻松处理(或执行)各种数据库操作,如插入,更新,删除等。 ORM框架 以下是在ORM机制上运行的一些框架 - Hibernate (参考:http://www.yiibai.com/hibernate ) TopLink ORMLite iBATIS JPOX 映射方向 映射方向可分为

  • 我有以下数据结构来我的服务器通过Http调用 然后我有下面的实体类 不管怎样,我都无法让spring boot匹配json属性文本(这两个值总是空的)。。。这可行吗 我需要生成的最终JSON如下 所以基本上我需要把我的孩子信息附加到父母身上。 更新我能够通过使用自定义JsonDeserializer获得与父级相同的一个属性,如下所示 这只适用于一个属性集,每个类使用@JsonDeserialize

  • 我正在用Java开发一个使用JPA的路线规划系统。我需要创建一个findBy方法,通过包含它的城市列表来查找路线。以下是课程: 现在我尝试了,但并不惊讶它不起作用,如下所示: 有没有一种简单的方法可以使用JPA,或者我必须编写一个困难的自己的@Query并以某种方式迭代,才能通过集合找到一个实体?

  • 问题内容: 我想编写一个Spring Data JPA存储库接口方法签名,该签名使我可以在该实体中找到具有嵌入式对象属性的实体。有人知道这是否可行吗? 这是我的代码: 我可以使用Spring Data为此编写查询吗? 问题答案: 此方法名称应能解决问题: 有关参考文档的查询派生的部分中的更多信息。