草庐IT

computer-database-jpa

全部标签

java - JPA 中的 "circular references"是反模式吗?

让我们说Car有一个Wheel列表,同时Wheel有一个Car对车主的引用。publicclassCar{Listwheels;}publicclassWheel{Carowner;}我问这个是因为在JPA中这样操作很容易,而不是再次查询数据库以获取父实体。 最佳答案 像这样的双向关系在JPA中是完全有效和预期的。这就是mappedBy属性的全部要点。这篇文章有很好的解释:InabidirectionalJPAOneToMany/ManyToOneassociation,whatismeantby"theinversesideoft

java - Hibernate JPA ManyToOne 组合键

我正在尝试设置我的实体以允许进行pk。我的数据库包含两个字段,dealer_detail_idpkuser_detail_idpk两者都在相应表中加入id。到目前为止,我已经试过了,但没有成功。@EmbeddablepublicclassDealerUserPkimplementsSerializable{privateIntegerdealerDetail;privateIntegeruserDetail;经销商用户@Embeddable@Table(name="dealer_user",schema="account")publicclassDealerUserimplements

java - jpa hibernate复合外键映射

我在为某些实体设置jpa映射时遇到问题。我有一个如下定义的父实体。@Entity@Table(name="EIF_INSTANCE_HDR")publicclassInstanceEntityimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(generator="eif_inst_gen")@SequenceGenerator(name="eif_inst_gen",sequenceName="EIF_INSTANCE_SEQ")@Column(name="EAIH_I

java - 使用 JPQL/HQL 在 JPA 中订购连接提取的集合

给定以下JPQL语句,我该如何修改它,以便结果列表中的小猫按它们的age属性排序?SELECTcFROMCatcleftjoinfetchc.kittensWHEREc.id=:id我尝试了多种方法,但都没有成功。这基本上是我想做的,但它不起作用:SELECTcFROMCatcleftjoinfetchc.kittenskWHEREc.id=:idORDERBYk.age 最佳答案 他,我认为在使用查询应用时这是不可能的。但据我所知,您可以使用它在映射中为您的集合添加默认排序:@OrderBy("myColumNameasc")

java - JPA 或 Hibernate - 在不同类型的列上连接表

有没有办法告诉Hibernate在使用to_char连接到另一个表或相反地将NUMBER转换为VARCHAR时将列包装在to_char中?我有一种情况,我有一个表,其中包含一个类型为VARCHAR的通用键列,该列存储另一个表的ID,该表是一个数字。当Hibernate执行它生成的使用“=”比较两列的SQL时,我收到了一个SQL异常。谢谢...附言我知道这并不理想,但我坚持使用模式,所以我必须处理它。 最佳答案 这应该可以在您的多对一中使用公式。来自5.1.22.Columnandformulaelements部分(此previous

java - JPA GenerationType.AUTO 不考虑具有自动增量的列

我有一个表,其中包含一个简单的intid列,在SQLServer中标识自动递增。实体的Id用@Id和@GeneratedValue注释@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="id",length=4,precision=10,nullable=false)privateIntegerid;在SQLServer中,该列已正确设置为带有Seed且Increment等于1的标识。当我尝试保留该实体的实例时,Hibernate尝试查询hibernate_sequence表以获取ID值。由于我没有在我的架构中创建

java - JPA 的 commit() 方法是否使实体分离?

我最近一直在搜索JPA实体生命周期。但是现在,关于实体生命周期的一些缺失点。我在一篇stackoverflow帖子中发现了下图,请记住这张图已被投票。根据此图,当我们持久化实体时,它就变成了托管实体。好的。没问题。当我们提交时,数据进入数据库。好的。没问题。但是图表向我们展示了这个提交操作使实体分离!让我们看看下面的伪代码。entityManager.persist(entity);transaction.commit();//actioncompletedandentityhasbecomedetached.(Accordingtothediagram.)entityManager.

java - JPA 和聚合函数。如何使用查询结果?

我是ORM的新手,我需要一些帮助来理解一些东西。假设我有以下标准SQL查询:SELECT*,COUNT(test.testId)ASnoTestsFROMinspectionLEFTJOINtestONinspection.inspId=test.inspIdGROUPBYinspection.inspId我想在JPA中使用它。我有一个与测试实体具有一对多关系的检查实体。(一次检查有很多测试)我试着用JPQL写这个:Queryquery=em.createQuery("SELECTinsp,COUNT(???what???)"+"FROMInspectioninspLEFTJOINin

java - JPA:哪一方应该是 m:n 关系中的拥有方?

例如,我有两个实体:Article和Tag(就像在典型的博客中一样)。每篇文章可以有多个标签,每个标签可以被多篇文章使用,是经典的m:n关系。我需要使用JPA指定拥有方。但是哪一方应该是拥有方呢?一篇文章不依赖于某个标签,反之亦然。是否有确定哪一方应成为拥有方的经验法则? 最佳答案 在JPA中,每个双向关系都需要一个拥有方。在ManyToMany的特殊情况下:@JoinTable在关系的拥有方指定。拥有方是任意,您可以选择两个实体中的任何一个作为所有者。来自JPA规范:9.1.26ManyToManyAnnotationEverym

java - 如何使用 JPA/Hibernate : Unknown entity 自动注册实体

我遇到了一个Hibernate/JPA配置问题,它阻止我的JPA注释实体被自动注册:java.lang.IllegalArgumentException:Unknownentity:com.example.crm.server.model.Languageatorg.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:671)atcom.example.crm.server.model.Language.persist(Language.java:64)atcom.example.