Tag: spring data jpa

尝试使用Spring Data JPA创build自定义存储库时找不到types错误的属性

我有一个媒体实体,有一些用户上传的文件的基本字段。 为了保存上传文件的字节数,我想创build一个自定义的存储库来保存这个function。 按照Spring文档中的步骤,我创build了一个如下所示的接口: public interface MediaBytesRepository { public byte[] getBytes(Media media) throws IOException; public void saveBytes(Media media, byte[] bytes) throws IOException; public void appendBytes(Media media, byte[] bytes) throws IOException; public void deleteBytes(Media media) throws IOException; public boolean bytesExist(Media media) throws IOException; } 然后我提供了一个名为MediaBytesRepositoryImpl接口的实现 有了这个,我创build了以下界面: public interface MediaRepository extends JpaRepository<Media, Long>, MediaBytesRepository { } 现在,当我启动服务器时,我得到以下堆栈跟踪: SEVERE: […]

使用@Query使用hibernate更新spring数据jpa中的布尔值

我有弹簧数据和hibernateconfiguration和运行。 我可以使用spring-data保存logging,但由于某些原因,我无法运行将更新表中所有布尔字段的查询。 我试过这个: @Query("update Content v set v.published = false where v.division = :division and v.section = :section") void unPublishContent(@Param("division") String division, @Param("section") String section); 我也试过这个: @Query("update Content v set v.published = 0 where v.division = :division and v.section = :section") void unPublishContent(@Param("division") String division, @Param("section") String section); 参数分区和部分实现,但没有变化的表格。 ps我也使用mysql数据库。

如何在Spring数据中使用@Transactional?

我刚刚开始研究Spring-data,Hibernate,MySQL和JPA项目。 我切换到spring-data,这样我就不用担心手工创build查询。 我注意到,当使用spring-data时,不需要使用@Transactional,因为我也尝试了没有注解的查询。 是否有一个特定的原因,我应该/不应该使用@Repository注释? 作品: @Transactional public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 也适用于: public List listStudentsBySchool(long id) { return repository.findByClasses_School_Id(id); } 提前致谢!

Spring数据jpa-没有定义名为“entityManagerFactory”的bean; 注入自动装载的依赖关系失败

我正在开发应用程序使用spring的数据jpa,hibernate,mysql,tomcat7,maven和它的创build错误。我试图弄清楚,但我失败了。 错误是在设置构造函数参数的时候无法parsingbean的'entityManagerFactory'引用; 没有定义名为“entityManagerFactory”的bean; 注入自动装载的依赖关系失败 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initDbService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.wahid.cse.repository.RoleRepository org.wahid.cse.service.InitDbService.roleRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleRepository': Cannot create inner bean '(inner bean)#c08f81' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: […]

不区分大小写使用Spring CrudRepository进行查询

用Spring CrudRepository查询; 我想select具有“name”属性的“DeviceType”实体。 但是下面的查询以区分大小写的方式select权限。 我如何使它不区分大小写的方式。 谢谢。 public interface DeviceTypeRepository extends CrudRepository<DeviceType, Integer>, JpaSpecificationExecutor<DeviceType> { public Iterable<DeviceType> findByNameContaining(String name); }

FetchMode如何在Spring Data JPA中工作?

我在我的项目中有三个模型对象之间的关系(模型和存储库代码片尾) 当我打电话PlaceRepository.findById它会触发三个select查询: ( “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更改为Place类中的FetchType.EAGER (具有附加SELECT的查询)时,查询在查询中没有区别,而当FetchType.LAZY更改为FetchType.EAGER (JOIN查询)时, City类也相同。 当我使用CityRepository.findById抑制两个select: SELECT * FROM city c where id = […]

如何在弹簧容器之外使用Spring Data JPA?

我正在尝试连接Spring Data JPA对象,以便我可以生成DAO代理(又名存储库) – 不使用Spring bean容器。 不可避免的是,我会被问到为什么要这样做:这是因为我们的项目已经在使用Google Guice(并且在使用Gin和GWT的UI上),我们不想维护另一个IoC容器configuration,所有由此产生的依赖关系。 我知道我们可以使用Guice的SpringIntegration ,但这是最后的手段。 看起来,所有东西都可以手动连接对象,但由于没有很好的文档logging,所以我很困难。 根据Spring Data用户指南, 独立使用仓库工厂是可能的。 不幸的是,这个例子显示了RepositoryFactorySupport是一个抽象类。 经过一番search,我设法findJpaRepositoryFactory JpaRepositoryFactory实际上工作得很好,除了它不会自动创build事务。 事务必须手动pipe理,否则什么都不会持久化到数据库: entityManager.getTransaction().begin(); repositoryInstance.save(someJpaObject); entityManager.getTransaction().commit(); 问题原来是@Transactional注释不会自动使用,并需要一个TransactionInterceptor 值得庆幸的是,在返回之前, JpaRepositoryFactory可以进行callback以将更多的AOPbuild议添加到生成的Repository代理中: final JpaTransactionManager xactManager = new JpaTransactionManager(emf); final JpaRepositoryFactory factory = new JpaRepositoryFactory(emf.createEntityManager()); factory.addRepositoryProxyPostProcessor(new RepositoryProxyPostProcessor() { @Override public void postProcess(ProxyFactory factory) { factory.addAdvice(new TransactionInterceptor(xactManager, new AnnotationTransactionAttributeSource())); } }); 这是事情做得不好的地方。 通过代码中的debugging器, TransactionInterceptor确实创build了一个事务 – […]

为什么要在Spring Data JPA Repository上的save()之后使用返回的实例?

这里是代码: @Repository public interface AccountRepository extends JpaRepository<Account, Long> {} 来自Spring Data JPA项目的JpaRepository 。 这里是testing代码: public class JpaAccountRepositoryTest extends JpaRepositoryTest { @Inject private AccountRepository accountRepository; @Inject private Account account; @Test @Transactional public void createAccount() { Account returnedAccount = accountRepository.save(account); System.out.printf("account ID is %d and for returned account ID is %d\n", account.getId(), returnedAccount.getId()); } } 结果如下: account […]

Spring Repository中是否可以使用原始SQL?

我需要在Spring Data Repository中使用原始SQL,这可能吗? 我在@Query看到的所有东西都是基于实体的。

弹簧数据JPA – “找不到types的属性”exception

好吧,我search了Google,发现了很多结果,但是没有一个能够回答我的问题。 所以,在这里呢。 我正在试图通过做一个pinterest克隆的最小实现来研究Spring MVC和Spring Data JPA。 所以,下面是我认为与我的问题有关的部分代码。 型号/实体 @Entity @Table(name = "pin_item") public class PinItem implements Serializable { // properties … @JoinColumn(name = "board_id", referencedColumnName = "user_board_id") @ManyToOne(optional = false) private UserBoard board; // getters and setters… } @Entity @Table(name = "user_board") public class UserBoard implements Serializable { // properties … @OneToMany(cascade = CascadeType.ALL, mappedBy […]