Spring boot Spring数据JPA-通过映射对象查找
在我的遗留应用程序中,我有一个国家表、州表以及一个国家和州的映射表,其中没有多少额外的列 我创建了这样一个实体类Spring boot Spring数据JPA-通过映射对象查找,spring-boot,spring-data-jpa,Spring Boot,Spring Data Jpa,在我的遗留应用程序中,我有一个国家表、州表以及一个国家和州的映射表,其中没有多少额外的列 我创建了这样一个实体类 class CountryStateMapping { @Id private long id; private Long countryId; @OneToOne @JoinColumn(name="state_id") private State state; //getters seters } 我的存储库 public interfac
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);
}
正确的方法是什么?尝试用下划线表示id,如下所示
public interface CountryStateMapping<CountryStateMapping, Long>{
Optional<CountryStateMapping> findByState_Id(long stateId);
Optional<CountryStateMapping> findByState(State state);
}
公共接口CountryStateMapping{
可选findByState_Id(长stateId);
可选findByState(状态);
}
我觉得这不是正确的方法。正确的方法是
public interface CountryStateMappingRepository extends JpaRepository<CountryStateMapping, Long> {
Optional<CountryStateMapping> findByStateId(long stateId);
@Query("select s.something from State s" )
Optional<CountryStateMapping> findByState(State state);
}
公共接口CountryStateMappingRepository扩展了JpaRepository{
可选findByStateId(长stateId);
@查询(“从状态s中选择s.something”)
可选findByState(状态);
}
这意味着两件事
谢谢谢谢。我已经扩展了JPA假设。我的错误。我现在更正了。然后您需要添加配置类。
public interface CountryStateMappingRepository extends JpaRepository<CountryStateMapping, Long> {
Optional<CountryStateMapping> findByStateId(long stateId);
@Query("select s.something from State s" )
Optional<CountryStateMapping> findByState(State state);
}