草庐IT

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 数据方面在 Intellij 14 中不起作用

现在我正在设置RESTapi模板。我想将springboot与spring数据集成一起使用,一切都很好,但我想利用Intellij14spring数据插件的优势,并在findByFirstName(...)上启用自动完成。我尝试在这个intelij11演示中实现类似的东西http://blog.jetbrains.com/idea/2011/11/enjoy-spring-data-jpa-in-intellij-11/如何在现有项目中启用springdata插件?我目前的配置@SpringBootApplicationpublicclassApplication{publicstat

java - Hibernate 忽略 fetchgraph

这是我的实体:publicclassPersonItemimplementsSerializable{@Id@Column(name="col1")privateStringguid;@Column(name="col2")privateStringname;@Column(name="col3")privateStringsurname;@Column(name="col4")privateDatebirthDate;//+gettersandsetters}这是我获取人员列表的方式:Queryquery=em.createQuery("SelectpfromPersonItempW

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

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

春季数据JPA或Custome DAO实施

我需要将一个旧项目迁移到新平台。还有其他一些项目已经迁移到SpringBootProject。但是,这是由现在不在我组织中的一些额外才华横溢的成员完成的。我想知道在最新的spring-data-jpa/hibernate上使用以下代码在数据访问层中使用以下代码的优势和缺点(我对boot+Data很好)。从我的个人理解中,每次都会通过新的Hibernate会话来称呼DAO,并且该会话将在该DAO完成的工作后立即进行。如果用户会话请求使用两个DAO类,在这种情况下,交易管理如何发生。我看到此代码正在使用此新配置来超越上下文。这个问题的最终期望是遵循此代码或春季数据的天气?有什么优点packagec

java - 使用 JPA (Hibernate) 查找包含给定记录的页面

我如何知道记录在JPA查询中的位置?我有一个返回分页结果的服务,它或多或少地实现了一个带有这个签名的方法:ListgetRecordsPage(longpage,intpageSize);当它被调用时,我只是创建一个查询并像这样配置:TypedQueryquery=entityManager.createQuery(criteriaQuery);query.setFirstResult(page*pageSize);query.setMaxResults(pageSize);这对结果进行分页。这按预期工作,而且非常简单。问题我的另一个要求是实现一个方法来检索包含特定记录的页面。实现具有