我有一个简单的Entitly类,@EmbeddedId
(Integer
和String
单独类中的字段)。然后,我使用Spring
Data(org.springframework.data.jpa.repository.JpaRepository
)访问数据库(MySql),使用常规ID,查询可以正常工作,无论是Spring生成的查询还是我自己编写的查询。与EmbeddedId
我没有设法创建正确的查询。我想做的是选择所有id(发生某些情况的EmbeddedId字段之一),这里有一些代码示例,也许有人会知道如何解决它。
实体类:
@Entity
@Table(name="table_name")
public class EntityClass {
@EmbeddedId
private EmbeddedIdClass id;
private String someField;
//rest of implemetation
}
EmbeddedId类:
@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的方法,我尝试了许多不同的方法名称,但是我总是从方法解析器中获取异常。
看来您的查询正在使用列名。它应包含属性名称,包括导航到嵌入式对象。SO上还有一个相关的问题:如何使用嵌入式ID编写JPQLSELECT?
select distinct id.id from EntityClass where userId = :userId and (...)
第一个id
引用(类型的)属性id
,第二个引用的属性。EntityClass``EmbeddedIdClass``id``EmbeddedIdClass
另外,请确保中有一个userId
属性EntityClass
。
这是我的代码: user.java UserController.java 结构: 提前谢谢
我正在使用Spring Boot创建套接字服务器,并且在实现Runnable的类中初始化我的JpaRepository时遇到了麻烦。为了测试服务器,我使用netcat,服务器成功接收数据并创建新的线程来处理/解析数据。但是当通过JpaRepository将数据保存在数据库中时,我会得到NullPointerExcure,因为仓库尚未成功初始化。我在配置中错过了什么? 我的SpringBoot应用程
我有一个新的SpringBoot应用程序来公开一些与jar中的实体相关的服务(作为一个依赖项包含在POM中)。对于数据访问,我计划使用SpringData,这样我就可以使用伟大的JpaRepository,而不是手动编写DAO。 jar在代码中是可见的,所以编译一切都很好,但是当Spring开始连接bean时,它会抛出异常: 在JAR中声明@Entity并使用SpringData/jpaEntit
既然有一个,那么当使用时,有没有办法刷新更新的实体? 我试图按批处理更新实体。 真的会有很大的帮助! 非常感谢。
我用嵌入ID(Integer和String字段在单独的类中)简单地初始化了类。我使用Spring数据(
我已经读了这些问题,但没有一个有效: Spring boot MVC -无法自动连接服务类中的存储库 为什么不能@Autowired a JPA存储库-Spring boot JPA JpaRepository在服务类中获取Null 还有这个:https://www.baeldung.com/spring-autowired-field-null 不幸的是,它们都不起作用。 我拥有的是: 服务接口