草庐IT

java - JPA/Hibernate 具有共享主键的单向一对一映射

我很难尝试获得与JPA(提供者:Hibernate)的单向一对一关系。在我看来,这应该不会太麻烦,但显然JPA/Hibernate不同意这一点;-)问题是我必须映射一个我无法更改的遗留架构,并且该架构使用两个实体之间的共享主键,该主键同时是一个实体的外键。我创建了一个简单的测试用例:数据库看起来如下:CREATETABLEPARENT(PARENT_IDNumberprimarykey,Messagevarchar2(50));CREATETABLECHILD(CHILD_IDNumberprimarykey,Messagevarchar2(50),CONSTRAINTFK_PAREN

java - Netbeans 中的 JPA 2.0 元模型?

我读到从6.9版开始,Netbeans包括annotationprocessing支持,例如,生成JPA2.0实体的元模型所需的功能。但是,我找不到任何示例或文档来准确说明如何执行此操作。你们中有人成功过吗? 最佳答案 我没有在NetBeans6.9中试验此功能,但根据releasenotes(和Bug178108),我的理解是,如果您使用EclipseLink(并且如果您将eclipselink-jpa-modelgen.jar添加到类路径),这应该是开箱即用的:JavaPersistenceCreationofnewpersis

java - 如何使用 Hibernate/JPA 注释覆盖 GenerationType 策略?

我正在考虑使用注解来定义我的Hibernate映射,但遇到了一个问题:我想使用基本实体类来定义公共(public)字段(包括ID字段),但我希望不同的表具有不同的ID生成策略:@MappedSuperclasspublicabstractclassBaseimplementsSerializable{@Id@Column(name="ID",nullable=false)privateIntegerid;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}...}@Entity@Table(name

java - 如何使用 JPA 和 Hibernate 设置默认查询超时?

我正在使用Hibernate对我的数据库进行一些大型查询,有时会遇到超时。我想避免在每个Query或Criteria上手动设置超时。我是否可以为我的Hibernate配置提供任何属性,以便为我运行的所有查询设置可接受的默认值?如果没有,我如何为Hibernate查询设置默认超时值? 最佳答案 JPA2定义了javax.persistence.query.timeout提示以指定默认超时(以毫秒为单位)。Hibernate3.5(目前仍处于测试阶段)将支持此提示。另见https://hibernate.atlassian.net/br

java - JPA 的最后更新时间戳

我正在尝试使用JPA(具体来说是Eclipselink)。下面的实体有一个应该反射(reflect)该实体上次更新时间的时间戳。让JPA每次自动更新时间戳的策略是什么此实体已更改?如果我还想要一个“创建”时间戳,只在实体首次持久化时设置,并且不允许再次更改,我该怎么办?@EntitypublicclassItemimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateIntegerid;privateStringnote;publicItem(){}@Id@GeneratedValue(strate

Java 8 Collections.sort(有时)不对 JPA 返回列表进行排序

Java8在我的JPAEclipseLink2.5.2环境中不断做奇怪的事情。我不得不删除问题https://stackoverflow.com/questions/26806183/java-8-sorting-behaviour昨天,因为这种情况下的排序受到一种奇怪的JPA行为的影响-我通过在进行最终排序之前强制执行第一个排序步骤找到了解决该问题的方法。仍然在带有JPAEclipselink2.5.2的Java8中,以下代码有时无法在我的环境中排序(Linux、MacOSX,均使用build1.8.0_25-b17)。它在JDK1.7环境中按预期工作。publicListgetDo

java - JPA 持久化具有一对多关系的实体

配置EcliplseLink2.3.2JPA2.0实体是使用EntityClassesfromDatabase...向导从netbeans的数据库模式自动创建的。Controller类是使用JPAControllerClassesfromEntityClasses...向导从netbeans自动创建的问题的简短版本在经典场景中,两个表具有一对多关系。我先创建父实体,然后创建子实体,然后将子实体附加到父实体的集合中。当我创建(Controller方法)父实体时,我希望子实体被创建并与父实体相关联。为什么没有发生?长版父类@Entity@XmlRootElementpublicclassD

java - 如何使用 Hibernate (EntityManager) 或 JPA 调用 Oracle 函数或过程

我有一个返回sys-refcursor的Oracle函数,当我使用Hibernate调用此函数时,出现以下异常。Hibernate:{?=callmy_function(?)}org.hibernate.exception.GenericJDBCException:couldnotexecutequeryjavax.persistence.PersistenceException:org.hibernate.exception.GenericJDBCException:couldnotexecutequeryatorg.hibernate.ejb.AbstractEntityManag

java - 如何在 JPA 2.0 中创建类似 'instance of' 的查询?

假设我们有一个抽象的@EntityAnimal和几个扩展Animal的实体类,包括Dog、Cat、Monkey和Bat。如何根据扩展实体的类过滤结果?示例:用户可以在其中选择要检索的实体的复选框。[]Dog[X]Cat[X]Monkey[]Bat现在我想使用Animal类中定义的(命名)查询检索实体。我可以在查询中放入什么样的查询参数,以便只返回Cat和Monkey对象? 最佳答案 我不确定它是否受JPA支持,但是在Hibernate中执行此操作的方式与继承策略无关,因此即使您没有鉴别器(或没有将其映射为属性))是使用隐式class

java - 如何使用 JPA 和 Hibernate 加入两个不相关的实体

我有两个表-一个包含地址,另一个包含照片。它们之间唯一的公共(public)字段是PersonID。这些被映射到两个POJO类地址和照片。我能够通过创建条件并在字段上添加限制来获取这些表中的详细信息。我们应该如何在两个表上写一个连接。是否可以将结果作为两个对象-地址和照片。我想做一个左连接,这样我也可以得到没有照片的人的记录。我已经读到这只能使用hql但也可以使用标准来完成吗? 最佳答案 您可以轻松编写HQL查询,使用ThetaJoin(如Adrian所述)将结果作为两个对象返回。这是一个例子:StringqueryText="se