草庐IT

java - hibernate 延迟加载不起作用

我使用的是3.6.1.Final版本我的实体bean中有以下属性@JoinColumn(name="FOLDER_PARENT_ID",referencedColumnName="FOLDER_ID")@ManyToOne(cascade=CascadeType.MERGE,fetch=FetchType.LAZY)privateFolderTblparent;在我的单元测试中,Assertnull失败了,因为getParent()不为空assertNull(folderTbl.getParent());我还需要做什么才能停止hibernate加载父级? 最

java - 使用 JPA 映射计算属性

有没有办法使用JPA映射计算属性?假设我有一个Invoice对象,其中有一个或多个InvoiceLineItems,我想在Invoice类上有一个持久的计算属性这给了我总金额:classInvoice{...@Column(name="TOTAL_AMOUNT")publicBigDecimalgetTotalAmount(){BigDecimalamount=BigDecimal.ZERO;for(InvoiceLineItemlineItem:lineItems){amount=amount.add(lineItem.getTotalAmount());}returnamount;

java - Hibernate 和 JPA 之间有什么区别?

这个问题在这里已经有了答案:What'sthedifferencebetweenJPAandHibernate?[closed](22个答案)关闭2个月前。社区在2个月前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决当我在大学学习网络编程时,他们告诉我们Hibernate。我们使用了一段时间,我什至有机会在一家公司的真实场景中使用它近8个月。现在我完全切换到JavaEE6,我使用JPA来满足我的ORM需求。我已经用了几个月了,但我真的不明白它们之间有什么区别。为什么有人说一个或另一个更好或更坏?我在两者中进行映射和注释的方式几乎相同。也许你能解决我的一些疑惑:各自的优缺点是

java - JPA 延迟加载

我对JPA实体中的延迟加载属性有疑问。我读过很多类似的问题,但它们与spring或hibernate相关,并且他们的回答要么不适用要么没有帮助。该应用程序是在Wildfly应用程序服务器上运行的具有JPA2.1的JEE。有两个实体,DAOsessionbean和将它组合在一起的servlet:@Entity@Table(name="base_user")publicclassUserimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id")intid;@One

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

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

java - @JsonIgnore vs @Transient - 区别?

哪个用于序列化和反序列化的跳过字段。@JsonIgnore如果@Transient也跳过序列化和反序列化过程中的字段,为什么我们应该使用它? 最佳答案 两者之间的明显区别在于,@Transient用作JPA的一部分,以忽略标记为@Transient的字段。因为@JsonIgnore仅用于忽略标记的字段,使其不被序列化、反序列化到JSON或从JSON反序列化。这意味着标记为@JsonIgnore的字段仍然可以在JPA持久性中持久化,而标记为@Transient的字段既不会被持久化也不会被序列化,de-连载。

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 - 在注释,实体类中映射时是否可以忽略某些字段

这个问题在这里已经有了答案:WhatistheeasiestwaytoignoreaJPAfieldduringpersistence?(10个答案)关闭6年前。我正在使用Hibernate与MySQL进行映射我有一个实体类,其中我将方法映射到MySQL中的列问题是,如果我可能不将该类中的某些方法映射到SQL中的任何列,就好像我尝试不将我的方法之一映射到实体类中一样,它会给出异常。这是代码片段@Column(name="skills")publicStringgetSkills(){returnskills;}publicintgetRowCount(){returnrowCount;