草庐IT

QueryDSL-JPA

全部标签

java - 数据库分片和 JPA

我正在开发一个需要horizontalpartitioningofdata的Java应用程序在不同的PostgreSQL服务器中。我想使用JPA框架和Spring进行事务管理。使用JPA进行数据分片的最流行框架似乎是HibernateShards,似乎不再开发,并且OpenJPASlice,它不支持虚拟碎片(我的要求之一)。是否还有我遗漏的任何其他选项,或绕过OpenJPA限制的方法?预先感谢您的输入! 最佳答案 你可以看看Sharding-JDBC,它是分片数据库和表的JDBC驱动程序,可以适配任何ORM框架。

java - 如何发回另一个实体拥有的 JPA 实体的子集?

我有一个实体拥有另一个实体://psuedocodepublicclassClassA{privateStringname;@OneToOneprivateClassBclassb;}publicclassClassB{privateStringthing1;privateStringthing2;privateStringthing3;}当我检索ClassA对象时,我不想看到ClassB.thing3,但我确实希望看到thing1和thing2:{"name":"classa","classb":{"thing1":"hi","thing2":"there"}}但是如果我查询Clas

java - 为什么我在 JPA 中使用 Oracle 的悲观锁定不起作用

我正在尝试为在不同JBoss节点中运行的cron作业实现某种信号量。我正在尝试使用数据库(Oracle11g)作为一种锁定机制,使用一个表来同步不同节点中的cron作业。表格很简单:CREATETABLESYNCHRONIZED_CRON_JOB_TASK(IDNUMBER(10)NOTNULL,CRONJOBTYPEVARCHAR2(255Byte),CREATIONDATETIMESTAMP(6)NOTNULL,RUNNINGNUMBER(1));ALTERTABLESYNCHRONIZED_CRON_JOB_TASKADDCONSTRAINTPK_SYNCHRONIZED_CRO

java - 如何使用 JPA 2.0 急切加载惰性字段?

我有一个实体类,它有一个像这样的惰性字段:@EntitypublicMovieimplementsSerializable{...@Basic(fetch=FetchType.LAZY)privateStringstory;...}故事字段通常应该延迟加载,因为它通常很大。但是有时候,我需要急切地加载它,但我不会写一些像movie.getStory()这样丑陋的东西来强制加载。对于惰性关系,我知道fetchjoin可以强制预先加载,但它不适用于惰性字段。如何编写查询以预先加载故事字段? 最佳答案 我会尝试Hibernate.init

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