Questions tagged «spring-data-jpa»

Spring Data-JPA是Spring Data伞项目的一部分,它使实现基于JPA的存储库变得容易

9
在Spring Boot中禁用所有与数据库相关的自动配置
我正在使用Spring Boot开发两个应用程序,一个用作服务器,另一个是客户端应用程序。但是,它们都是同一个应用程序,根据活动配置文件的功能有所不同。我正在使用Spring Boot的自动配置功能来配置我的应用程序。 我想在客户端应用程序上禁用所有与数据库相关的自动配置,因为它不需要数据库连接。应用程序不应尝试与数据库建立连接,也不应尝试使用任何Spring Data或Hibernate功能。启用或禁用数据库自​​动配置应该是有条件的,并且应基于应用程序的活动配置文件。 我可以通过为各自的配置文件创建两个不同的application.properties文件来实现此目的吗? 我尝试将其添加到属性文件中, spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration\ org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration 但是,该应用程序仍然尝试在启动时连接到数据库。这些排除条件足以满足我的要求吗?


9
在Spring JpaRepository中的%Like%查询
我想写一个类似的查询,JpaRepository但它不返回任何内容: LIKE '%place%'-它不起作用。 LIKE 'place' 完美地工作。 这是我的代码: @Repository("registerUserRepository") public interface RegisterUserRepository extendsJpaRepository<Registration,Long> { @Query("Select c from Registration c where c.place like :place") List<Registration> findByPlaceContaining(@Param("place")String place); }

5
在Spring Data REST中发布@OneToMany子资源关联
目前,我有一个使用Spring Data REST的Spring Boot应用程序。我有一个域实体Post,它@OneToMany与另一个域实体有关系Comment。这些类的结构如下: Post.java: @Entity public class Post { @Id @GeneratedValue private long id; private String author; private String content; private String title; @OneToMany private List<Comment> comments; // Standard getters and setters... } Comment.java: @Entity public class Comment { @Id @GeneratedValue private long id; private String author; private String …

4
使用Spring CrudRepository的不区分大小写的查询
使用Spring CrudRepository查询;我想使用“名称”属性选择“设备类型”实体。但是下面的查询选择区分大小写的权利。我如何使其不区分大小写。谢谢。 public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> { public Iterable<DeviceType> findByNameContaining(String name); }

4
Spring Data JPA通过嵌入式对象属性查找
我想编写一个Spring Data JPA存储库接口方法签名,该签名可以让我在该实体中找到具有嵌入式对象属性的实体。有人知道这是否可行吗? 这是我的代码: @Entity @Table(name = "BOOK_UPDATE_QUEUE", indexes = { uniqueConstraints = @UniqueConstraint(columnNames = { "bookId", "region" }, name = "UK01_BOOK_UPDATE_QUEUE")) public class QueuedBook implements Serializable { @Embedded @NotNull private BookId bookId; ... } @Embeddable public class BookId implements Serializable { @NotNull @Size(min=1, max=40) private String bookId; @NotNull @Enumerated(EnumType.STRING) …

4
缺少CrudRepository#findOne方法
我在项目中使用Spring 5。直到今天,仍然有可用的方法CrudRepository#findOne。 但是下载最新的快照后,它突然消失了!有没有参考说明该方法现在不可用? 我的依赖项列表: apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' repositories { mavenCentral() maven { url "https://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/milestone" } } dependencies { compile 'org.springframework.boot:spring-boot-starter-data-jpa' runtime 'com.h2database:h2:1.4.194' } 更新: 似乎此方法已被替换为 CrudRepository#findById

7
Spring Data:支持“删除依据”吗?
我正在使用Spring JPA进行数据库访问。我能够找到诸如findByName和countByName之类的示例,对于这些示例,我不必编写任何方法实现。我希望找到一些根据某些条件删除一组记录的示例。 Spring JPA是否支持类似于deleteByName的删除?任何指针表示赞赏。 谢谢,谢谢。

8
FetchMode如何在Spring Data JPA中工作
我确实在项目中的三个模型对象之间有关系(文章末尾的模型和存储库片段)。 当我调用PlaceRepository.findById它时,会触发三个选择查询: (“ sql”) SELECT * FROM place p where id = arg SELECT * FROM user u where u.id = place.user.id SELECT * FROM city c LEFT OUTER JOIN state s on c.woj_id = s.id where c.id = place.city.id (对我而言)这是非常不正常的行为。据我阅读Hibernate文档后所知,它应该始终使用JOIN查询。在类中FetchType.LAZY更改为 查询时(带有附加SELECT 的查询)没有任何区别,而在类更改为 (使用JOIN查询时)则没有变化。FetchType.EAGERPlaceCityFetchType.LAZYFetchType.EAGER 当我使用CityRepository.findById抑制射击时,有两个选择: SELECT * FROM city c …

3
JpaRepository不支持DML操作[删除查询]
我已经编写了一个查询来删除我的扩展接口中的某些对象JPaRepository,但是当我执行查询时会抛出异常!谁能为我解释一下? 查询: public interface LimitRepository extends JpaRepository<CLimit, Long> { @Query("delete from CLimit l where l.trader.id =:#{#trader.id}") void deleteLimitsByTrader(@Param("trader") CTrader trader); } 我收到此错误,请问,请为我解释一下,谢谢大家:) 例外: org.hibernate.hql.internal.QueryExecutionRequestException: Not supported for DML operations [delete from com.query.domain.CLimit l where l.trader.id =:__$synthetic$__1] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.errorIfDML(QueryTranslatorImpl.java:318) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:369) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:495) …

16
带分页的Spring数据和本机查询
在一个网络项目中,将最新的spring-data(1.10.2)与MySQL 5.6数据库一起使用,我试图使用带有分页的本机查询,但org.springframework.data.jpa.repository.query.InvalidJpaQueryMethodException在启动时遇到了问题。 更新:20180306此问题已在Spring 2.0.4中修复。对于仍对旧版本感兴趣或仍在使用旧版本的人,请查看相关答案和评论以找到解决方法。 根据spring-data文档中使用@Query的示例50,可以指定查询本身和countQuery,如下所示: public interface UserRepository extends JpaRepository<User, Long> { @Query(value = "SELECT * FROM USERS WHERE LASTNAME = ?1", countQuery = "SELECT count(*) FROM USERS WHERE LASTNAME = ?1", nativeQuery = true) Page<User> findByLastname(String lastname, Pageable pageable); } 出于好奇,在NativeJpaQuery课堂上我可以看到它包含以下代码来检查其是否为有效的jpa查询: public NativeJpaQuery(JpaQueryMethod method, EntityManager em, String queryString, EvaluationContextProvider …

4
如何在Spring Data中使用@Transactional?
我刚刚开始从事Spring数据,Hibernate,MySQL,JPA项目。我切换到spring-data,以便不必担心手动创建查询。 我注意到@Transactional当您使用spring-data时不需要使用of,因为我也尝试了没有注释的查询。 有特定的原因为什么我应该/不应该使用@Transactional注释? 作品: @Transactional public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 也可以: public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 提前致谢!

1
crudrepository findBy方法签名与多个in运算符?
我有一个这样的实体类: @Entity @Table(name = "EMAIL") class Email{ @Id @Column(name = "Id") Long id; @Column(name = "EMAIL_ID") String emailId; @Column(name = "PIN_CODE") String pincode; } 如何findBy使用crudrepository spring数据jpa编写以下查询的方法? select email_id,name from email_details where eamil_id in('mike@gmail.com','ram@gmail.com') and pin_code in('633677','733877') 我期望像下面这样的spring data jpa方法,但是如何构造它呢? List<Email> findBy.....(List<String> emails, List<String> pinCodes); 我想在单个数据库命中中获取电子邮件列表。

18
无法在Spring Boot中自动装配@Repository带注释的界面
我正在开发一个Spring Boot应用程序,在这里遇到了一个问题。我试图注入一个@Repository注释的接口,它似乎根本不起作用。我收到这个错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springBootRunner': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.pharmacy.persistence.users.dao.UserEntityDao com.pharmacy.config.SpringBootRunner.userEntityDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.pharmacy.persistence.users.dao.UserEntityDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. …

8
Lombok @Builder和JPA默认构造函数
我正在将Lombok项目与Spring Data JPA一起使用。有什么方法可以将Lombok@Builder与JPA默认构造函数连接? 码: @Entity @Builder class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; } 据我所知,JPA需要默认构造函数,该默认构造函数被@Builder注释覆盖。有什么解决方法吗? 这段代码给我错误: org.hibernate.InstantiationException: No default constructor for entity: : app.domain.model.Person

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.