草庐IT

accessing-data-jpa

全部标签

java - Spring Data - 覆盖某些存储库的默认方法

我只是盯着spring-data和spring-data-rest,我真的很想利用这些工具提供的功能。在大多数情况下,基本功能非常适合我的用例,但在某些情况下,我需要对底层功能进行相当多的自定义,并有选择地分配一些存储库来继承我所追求的自定义功能。为了更好地解释这个问题,在spring-data中有2个可能的接口(interface),您可以从它们继承功能,CrudRepository或PagingAndSortingRepository。我想添加第三个叫做让我们说PesimisticRepositoryPesimisticRepository所做的只是以不同方式处理已删除的@Enti

java - Spring Data Rest - 软删除

我一直在使用springdatarest没有任何问题,但现在我有一个要求,即当用户对给定实体执行DELETE操作时,即DELETE/accounts/我需要在数据库上设置一个标志,将该实体标记为已删除,但我确实想保留记录。基本上这意味着我需要在数据库中执行UPDATE而不是DELETE操作。我找不到任何方法来覆盖delete(ID)方法的spring行为。部分代码:@Entity@Table(name="account")publicclassAccount{/*DefaultvalueforthisfieldisfalsebutwhenareceiveaDELETErequestfo

java - 如何在 Spring Boot 中实现通用 JPA 存储库——它可以自动连接到任何实体/类类型的 spring 服务中

这是扩展了springPagingAndSortingRepository的示例GenericRepository实现,@NoRepositoryBeanpublicinterfaceGenericRepositoryextendsPagingAndSortingRepository{publicListfindByNamedQuery(Stringname);publicListfindByNamedQueryAndParams(Stringname,Mapparams);publicTfindOneByNamedQuery(Stringname);publicTfindOneByN

java - 如何在单元测试中模拟 JPA 存储库的保存方法

比如我在UserService中有这个方法:@Override@TransactionalpublicUserDtocreate(UserDtouserDto){UserdbUser=userRepository.findOne(userDto.getId());if(dbUser!=null){thrownewAuthException(AuthException.ErrorCode.DUPLICATE_USER_EXCEPTION);}UseroneByLogin=userRepository.findOneByLogin(userDto.getLogin());if(oneByL

java - JPA entityManager.merge 将 LocalDateTime 转换为 SQLServer 2012 DATETIME2

我有一个以DateTime列作为主键的表:USE[idatest]GOCREATETABLE[dbo].[DatesTbl]([creationDate][datetime]NOTNULLCONSTRAINT[PK_DatesTbl]PRIMARYKEYCLUSTERED([creationDate]ASC))GO当我执行entityManager.merge时,我得到重复,PK违规,因为datetime为milisec保留3位数字,但hibernet将其转换为datetime2,它为milisec保留7位数字。在java代码中,我使用LocaDatetime,它包含10位毫秒数。我已

java - JPA + Hibernate + 自动提交

有人知道为什么我在JPA配置文件中关闭自动提交时会收到此警告吗?使用此设置:生成此警告:2009-08-0409:54:10,621[main]WARNorg.hibernate.ejb.Ejb3Configuration-hibernate.connection.autocommit=falsebreaktheEJB3specification这会如何破坏EJB3规范? 最佳答案 来自EJB3.0规范的第13.3.4节:Theenterprisebean’sbusinessmethods,messagelistenermethod

java - 如何强制初始化 Hibernate JPA 代理以在 JSON 调用中使用它

我有一个Spring3+JPA2.0应用程序。在我的@Controller中,我需要一个初始化对象,但我有代理,我需要能够以编程方式初始化它。我需要类似于org.hibernate.Hibernate.initialize(Object)的功能。谁能帮忙。该对象用于AJAX操作。如果属性是代理,我不能将它作为JSON发送 最佳答案 据我所知,没有JPA选项。你应该使用Hibernate.initialize(..)。事实上,当我查看hibernate实现时,惰性集合似乎在许多情况下都被初始化,这出乎人们的意料。像entityMana

java - 无法在 JSON 输出中获取 JPA 实体 ID

我们正在尝试使用Spring-Data-JPA和Spring-Data-Rest进行POC。输出看起来异常,我们有实体字段的值,除了id,id字段设置在抽象类中。我们正在使用一个简单的实体女巫扩展AbstractPersistable(它是一个spring-data-jpa类http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa/domain/AbstractPersistable.html)。这里是这个的源代码:@MappedSuperclasspublicabstract

java - 如何使用 spring data envers 查找实体的所有修订?

我在我的springboot应用程序中使用spring-data-envers。我可以成功地记录对我的实体的审计。现在,我需要在UI中向用户显示审核数据。就像会有一个搜索表单,用户可以在其中选择他想要查看审计日志的持续时间和实体。string-data-envers提供的RevisionRepository只有以下三个方法。@NoRepositoryBeanpublicinterfaceRevisionRepository>{/***Returnstherevisionoftheentityitwaslastchangedin.**@paramidmustnotbe{@literaln

java - 带有 JPA/Hibernate 的 Spring MVC 中是否仍然需要 DAO

我知道这个问题已经被问过无数次了,但是由于关于这个主题的大多数问题都是6-7年前的,我希望看看支持/反对这个主题的原始论点是否有任何变化,因为更新版本的JPA出来了。我知道这可以被视为主要基于意见,但我正在寻找优点/缺点列表。有些人认为entitymanager本身就是一个DAO,应用程序中的DAO层是多余的。大多数人会同意EntityManager非常紧密地涵盖了基本的CRUD操作......但是有一点我们不应该在里面使用entitymanager.createQuery(...)服务层。但现在有了@NamedQueries注释,我们可以简单地向模型类添加命名查询,并为每个实体模型维