草庐IT

QueryDSL-JPA

全部标签

java - 如何为多个并发事务请求正确处理 JPA Object OptimisticLockException?

所以,我在做一个简单的SpringMVC+JPA(hibernate)项目,其中有用户可以发布帖子并在他们的friend帖子上发表评论(有点像一个小型社交网络)。我对使用JPAHibernate还是比较陌生。因此,当我尝试从浏览器进行测试时,在处理先前的请求时非常快速地发送多个任务(包含事务)的多个请求2-3次时,我得到一个OptimisticLockException。这是堆栈跟踪..org.springframework.web.util.NestedServletException:Requestprocessingfailed;nestedexceptionisorg.spri

java - 如何在 JPA 标准 API 中进行不同计数?

我想这样做,但改用标准API:selectcount(distincte)fromEvente,IN(e.userAccessPermissions)pwherep.principal=:principalandp.permissionin(:permissions)有什么想法吗? 最佳答案 您可以在CriteriaBuilder上使用countDistinctcriteriaQuery.select(criteriaBuilder.countDistinct(entityRoot))

java - Log4j2/JPA/Hibernate 日志记录不工作

我无法使用log4j2生成hibernate日志消息。它仅记录INFO和WARN。另一方面,HikariCP与此配置完美配合。这是pom.xml:...org.apache.logging.log4jlog4j-slf4j-impl2.1org.apache.logging.log4jlog4j-api2.1org.apache.logging.log4jlog4j-core2.1...log4j2.xml:--> 最佳答案 使用jboss-logging的Hibernate日志。现在Hibernate4.3.7.Final使用jb

java - JPA:关于在删除之前合并实体的问题

我知道我必须在删除之前合并该实体,但我从没想过我必须在EJB中这样做。首先我有这些:e=(Event)scholarBean.merge(e);scholarBean.remove(e);在我的托管bean中。它给我这个错误java.lang.IllegalArgumentException:Entitymustbemanagedtocallremove:com.scholar.entity.Event@998,trymergingthedetachedandtrytheremoveagain.然后我将这两行代码放入我的sessionbean中,它就起作用了。知道为什么吗?托管Bean

java - jpa 2 hibernate 限制(最大结果)到 CriteriaQuery

也许这是一个愚蠢的问题,但我在文档中找不到答案:如何使用JPA2为CriteriaQuery设置限制?谢谢 最佳答案 CriteriaQuery不是可执行的查询。您需要先使用EntityManager.createQuery(criteriaQuery)创建一个TypedQuery。然后您可以设置它的最大结果并执行它。 关于java-jpa2hibernate限制(最大结果)到CriteriaQuery,我们在StackOverflow上找到一个类似的问题:

java - 为什么 JPA 对于 @ManyToOne 关系默认使用 FetchType EAGER

我开始注意到@ManyToOne映射的默认FetchType在JPA和Hibernate中是EAGER,而对于@OneToMany映射,默认FetchType为LAZY。这背后的具体原因是什么? 最佳答案 根据JPA2.0规范c,默认值如下:OneToMany:LAZYManyToOne:EAGERManyToMany:LAZYOneToOne:EAGER在hibernate中,一切都是懒惰的来自Hibernate文档,Bydefault,Hibernateuseslazyselectfetchingforcollectionsan

java - 使用 JPA merge() 时出现 OptimisticLockException

我有一个休息应用程序,其中一个资源可以更新。以下是负责完成此任务的两种方法:updateWithRelatedEntities(String,Store):接收id和通过反序列化PUT请求实体构建的新对象Store,在新对象上设置版本(用于乐观锁定)并调用更新在交易中。publicStoreupdateWithRelatedEntities(Stringid,StorenewStore){StoreexistingStore=this.get(id);newStore.setVersion(existingStore.getVersion());em.getTransaction().

java - 如何使用 JPA/Hibernate 选择 DDL 主键约束名称

存在一个专有的hibernate注释来指定在DDL生成时使用的外键约束名称:org.hibernate.annotations.ForeignKey.是否还有一种方法可以指定主键约束名称? 最佳答案 标准JPA不可能,Hibernate也不支持主键约束。关于此功能请求实际上有一个非常古老的问题(HB-1245),但看起来它并没有引起太多关注。 关于java-如何使用JPA/Hibernate选择DDL主键约束名称,我们在StackOverflow上找到一个类似的问题:

java - Android 中的 JPA 注解

我们有一个项目,在服务器端使用JPA/Hibernate,映射的实体类在他们自己的Library-Project中,并使用Annotations映射到数据库。我想在Android项目中使用这些类-有什么方法可以忽略Android中的注释,将这些类用作标准POJO? 最佳答案 只要您的类路径中有带有JPA注释类的jar,编译器就不会在意。如果不存在运行时检测系统(例如Hibernate),则注释只是存在但未使用的额外信息。唯一的问题是确保在您的分发中包含JPAjar。 关于java-And

java - JPA 和 JDO 规范有什么区别?

我一直在使用HibernateORM,它是JPA的一个实现。管理关系数据的规范。我也听说过JDO规范应该做同样的事情(管理关系数据)。两者之间的根本区别是什么?最受赞赏的任何代码示例。JDO如何与其他Java技术堆栈集成,例如EJB3? 最佳答案 试试这些JDO-JPAFAQ,JDOorJPA,JDO.v.JPA,JDO.v.JPA-API,JDO.v.JPA-ORMJDO早在JPA之前就存在了,而且范围更广。JPA仅适用于RDBMS,并且(即使在JPA2中)也不提供JDO所提供的完整支持。该论坛中的链接和其他帖子应该提供充分的阅读