草庐IT

java - JPA 异常保存父/子

我正在使用JPA并具有以下内容:ProductEntity@Basic@Column(name="PRODUCT_ID",nullable=false,length=128)privateStringproductId;@ManyToOne@JoinColumn(name="PARENT_ID")privateProductEntityparent;如您所见,产品表可以有一个父表。有效的亲子关系。我在数据库中保存了一个产品,然后我添加了一些子产品,每个子产品都有相同的父级。父Product有ProductEntityparent=null;子产品有ProductEntityparent

java - 如何在 Hibernate 中从非实体子类中持久化实体

我正在尝试将实体扩展为用于填充父类(superclass)字段的非实体。问题是,当我尝试保存它时,Hibernate会抛出MappingException。这是因为即使我将ReportParser转换为Report,运行时实例仍然是ReportParser,因此Hibernate会提示它是一个未知实体。@Entity@Table(name="TB_Reports")publicclassReport{Longid;Stringname;Stringvalue;@Id@GeneratedValue@Column(name="cReportID")publicLonggetId(){ret

java - JPA:覆盖自动生成的 ID

这个问题在这里已经有了答案:BypassGeneratedValueinHibernate(mergedatanotindb?)(8个答案)关闭4年前。我在Employee类中有以下定义@Id@GeneratedValue(strategy=GenerationType.AUTO)@Column(name="employee_id")privateIntegeremployeeId;现在我想导入具有现有员工ID的现有员工。即使我在保存之前设置了员工ID,分配的ID也会被忽略,并存储自动递增的ID。我们如何覆盖它?我对复合键有类似的问题,这已得到解释here

java - JPA/Hibernate 可以与其他持久性框架(如 jOOQ)结合使用吗

我们有一个域,其中90%的类都非常简单,可以轻松地在数据库中进行1:1映射。我很高兴Hibernate与spring-data-jpa的结合为这些类消除了大量的琐事。然而,域的其余部分具有挑战性,出于多种原因,我不想将其直接映射到数据库表。我做了实验来引入由Hibernate管理的中间bean并将这些bean映射到我的域,当所有关系都从具有挑战性的部分到容易的部分时,这很有效。当我有由Hibernate管理的“简单”类引用映射到自定义Java代码中的“具有挑战性的”类而不是直接由Hibernate管理时,这种方法失败了。这是当我意识到我无法找到自定义Hibernate和插入某种Obje

java - 有没有办法用 Hibernate/JPQL 查询 PostgreSQL hstore?

假设我有一个如下所示的Hibernate/JPA实体:@EntitypublicclassFooEntity{...@Type(type="hstore")HashMaptags;}...和hstore类型是来自this的简单UserType实现资源。有没有一种方法可以在类似于此伪代码的JPQL查询中访问hstore:SELECTfFROMFooEntityfWHEREf.tagsCONTAINSKEY(:key) 最佳答案 您也可以简单地创建一个Hibernateorg.hibernate.usertype.UserType。你扩

java - 如何使用 native SQL 作为在 Hibernate 中使用 Criteria API 进行的更大查询的片段(where 子句)?

我有以下问题。在我正在开发的应用程序中,我们使用Hibernate,每个查询都是用CriteriaAPI编写的。现在,在某些地方,我们希望增加用户编写一些SQL代码的可能性,这些代码将用作查询中where子句的一部分。所以基本上,用户可以按照自己的方式从数据库中过滤显示给他的数据。几天来,我一直在努力寻找一种方法来修改我们以前的查询以获得上述结果。这是我所知道的:看起来您无法将CriteriaAPI与nativeSQL结合使用。您可以用SQL编写整个查询或仅使用条件API。那正确吗?我问这个问题是因为它是最简单的解决方案,只需将此SQL代码用作我们查询中where子句中的另一个谓词。但

java - Hibernate Composite key Criteria Join

我正在尝试通过复合键执行多个连接。我正在使用别名来强制创建连接,但似乎连接不是由Hibernate生成的。我不知道为什么会这样。我可以让它与nativeSQL查询一起使用,但在使用条件时无法使用。我怀疑这可能与复合键定义的映射方式有关(参见BusinessServiceUser上的associationOverrides)下面是我的域模型类和查询信息。欢迎任何想法:)商务服务@Entity@Table(name="business_services")publicclassBusinessServiceextendsAbstractEntityimplementsSerializabl

java - Spring JPA/Hibernate 事务强制插入而不是更新

已编辑。虽然扩展基础存储库类并添加插入方法会起作用,但更优雅的解决方案似乎是在实体中实现Persistable。查看可能的解决方案2我正在使用springframework.data.jpa创建一个服务,使用JpaTransactionManager将Hibernate作为ORM。遵循此处教程的基础。http://www.petrikainulainen.net/spring-data-jpa-tutorial/我的实体存储库扩展org.springframework.data.repository.CrudRepository我正在使用一个遗留数据库,它使用有意义的主键而不是自动生成

java - JPA 条件生成器 : How to pass ArrayList to Oracle function?

我有一个接受POINTS%ROWTYPE表的Oracle函数。我想使用CriteriaBuilder类从JPA调用此函数,该类具有数据库函数。当我尝试构建查询时,它死了,提示ArrayLists不是该函数的有效查询参数。如何将JPA中的ArrayList传递给Oracle函数?Oracle函数签名:CREATEORREPLACEFUNCTIONLOCATION_CONTAINS(LATITUDE_ININDOUBLEPRECISION,LONGITUDE_ININDOUBLEPRECISION,pointsINtypes_pkg.point_array,numPointsININTEG

java - Spring Data 有条件地获取 child

我读过SpringDataJPARepository:Howtoconditionallyfetchchildrenentites.但我想使用方便的JPA注释而不是手动加入所有子项。假设我有以下模型:@EntitypublicclassUserModelextendsBaseModel{@OneToMany(mappedBy="user",cascade=CascadeType.ALL,fetch=FetchType.LAZY)privateListcredentialList=newArrayList();@ManyToMany@JoinTable(name="users_actio