草庐IT

java - JPA 找到最后一个条目

我想知道使用JPA获取表的最后一个条目的最佳方法是什么。在SQL中,我正在寻找的是:selectidfromtableorderbyiddesclimit1我在考虑model.count()但这听起来更像是一个hack而不是一个好的解决方案;) 最佳答案 可以通过关键字first或top来限制查询方法的结果,这两个关键字可以互换使用。可以将可选数值附加到top/first以指定要返回的最大结果大小。如果省略数字,则假定结果大小为1。JpaClassfindFirstByOrderByIdDesc();referencedbySpri

java - 附加实体是否需要在 JPA 中合并?

我永远不需要使用EntityManager#merge()是否正确,只要我只处理attached托管实体?换句话说,在attached托管实体上调用merge()没有效果?或者在某些情况下合并会起到一定的作用?我发现这个名字暗示我可以用它来处理OptimisticLockException...:)编辑:简单来说,我对托管实体的理解是,在事务结束时对其属性/字段的修改会持久保存到数据库中。 最佳答案 规范指出:IfXisamanagedentity,itisignoredbythemergeoperation,however,the

java - JPA/hibernate "Composite-id class does not override equals()"

我正在使用JPA并收到以下警告。我对此进行了研究,并理解了为什么我需要覆盖它以及Hibernate如何使用这些方法。不过我还有一个问题:异常:Composite-idclassdoesnotoverrideequals()问题:为什么Hibernate只关心没有复合ID的类?如果只有一个存在,它是否默认比较@Id字段,还是这里发生了更复杂的事情? 最佳答案 因为当实体没有复合ID时,它们只有一个,属于基本支持的类型之一(Integer、Long、String等),并且这些类已经具有定义良好的equals()(和hashCode())

java - 奇怪的 JPA 行为,初始化字段为空

我正在观察实体类的一个非常奇怪的行为,并使用JPA(hibernateentitymanager3.3.1.ga)加载此类的对象。该类有一个(嵌入式)字段,在声明中初始化。该字段的setter实现空检查(即当设置空值时会抛出异常)。...@EntitypublicclassParticipantextendsBaseEntityimplementsComparable{...@EmbeddedprivateAmsDataamsData=newAmsData();publicvoidsetAmsData(AmsDataamsData){Checks.verifyArgNotNull(am

java - EJB 和 JPA 有什么关系?

这个问题在这里已经有了答案:RelationshipbetweenEJB3.0andJPA?(4个答案)关闭5年前。我正在阅读EJB3inAction一书,我有以下问题:您编写并使用@Entity等注释的POJO是否也是EJB实体类型?我不明白JPA和EJB有什么关系。现在JPA不是自己的规范吗?这些实体也包含在自己的持久性容器中。他们谈论EJB3JavaPersistenceAPI等,但我不明白实体与EJB有什么关系。

java - 如何在 JPA 中使用 Postgres JSONB 数据类型?

我找不到使用JPA(EclipseLink)从PostgreSQL映射JSON和JSONB数据类型的方法。有人在JPA中使用这种数据类型并且可以给我一些工作示例吗? 最佳答案 所有的答案都帮助我找到了为JPA而不是专门为EclipseLink或Hibernate准备的最终解决方案。importcom.fasterxml.jackson.core.type.TypeReference;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.io.IOException;

java - JPA 清除集合并添加新项目

我有一个@OneToMany集合(列表),我想清除它,并在同一事务中添加新元素。使用collection.clear();collection.add(newEntityB());只是添加新实例,从不删除任何东西。我为收集字段设置了orphanRemoval=true。添加://Parententity@OneToMany(mappedBy="product",orphanRemoval=true)privateListfeatures=newArrayList();//Childentity@ManyToOne(cascade=CascadeType.ALL)privateProdu

java - 如何对 JPA 查询进行分页

我有一个提交表,其中包含ID、Name、Code等列以及其他属性。我的要求是根据上述属性搜索记录并返回分页集。这是我正在寻找的伪代码:searchSubmission(searchFiltersf,pageIndex,noOfRecords){query='fromsubmisssionwherecode=sf.codeorid=sf.idorderbyidstart_from(pageIndex*noOfRecords)limitnoOfRecords'returnresult();}CriteriaBuilder、NamedQuery等似乎有很多选择。在这种情况下,哪个是最有效的?

java - 使用 join 的 Spring Data JPA 规范的不同结果

我有以下Specification我用来查询任何Contact与某些ManagedApplication相关的实体实体。我传入一个Collection包含ManagedApplication的ID我正在搜索的实体。publicstaticSpecificationfindByApp(finalCollectionappIds){returnnewSpecification(){@OverridepublicPredicatetoPredicate(Rootroot,CriteriaQueryquery,CriteriaBuildercb){finalPredicateappPredic

java - UNION 到 JPA 查询

是否可以在JPA甚至“CriteriaBuilder”中查询“UNION”?我正在寻找示例,但到目前为止我没有得到任何结果。有没有人有任何如何使用它的例子?还是会使用原生sql? 最佳答案 SQL支持UNION,但JPA2.0JPQL不支持。大多数并集都可以通过连接来完成,但有些不能,有些更难以使用连接来表达。EclipseLink支持UNION。 关于java-UNION到JPA查询,我们在StackOverflow上找到一个类似的问题: https://s