将@EmbeddedId与 JpaRepository 结合使用
2022-09-01 03:07:41
我有简单的 Entitly 类,其中 ( 和字段位于单独的类中)。我使用Spring Data()访问数据库(MySql),使用正常的Id,查询工作正常,无论是Spring生成的查询还是我自己编写的查询。使用,我没有设法创建正确的查询。我想做的是选择所有id(发生某些情况的嵌入式Id的字段之一)在这里你有一些代码示例,也许有人会知道如何解决它。
实体类:@EmbeddedId
Integer
String
org.springframework.data.jpa.repository.JpaRepository
EmbeddedId
@Entity
@Table(name="table_name")
public class EntityClass {
@EmbeddedId
private EmbeddedIdClass id;
private String someField;
//rest of implemetation
}
嵌入式 Id 类:
@Embeddable
public class EmbeddedIdClass implements Serializable {
public EmbeddedIdClass(Long id, String language) {
super();
this.id = id;
this.language = language;
}
public UserAdTextId() {}
@Column(name="ad_id", nullable=false)
private Integer id;
@Column(name="language_code", nullable=false)
private String language;
//rest of implemetation
}
和存储库:
@Transactional(readOnly=true)
public interface MyRepository extends JpaRepository<EntityClass, EmbeddedIdClass> {
@Query("select distinct ad_id from EntityClass where userId = :userId and (/*here the conditions*/)")
public Page<Integer> findUserAdsWithSearchString(@Param("userId") Integer userId, @Param("searchString") String searchString, Pageable page);
//rest of implemetation
}
我没有找到任何文档来创建支持@EmbeddedId的方法,我正在尝试许多不同的方法名称,但我总是从方法解析器中获得异常。