草庐IT

java - 如何在 JBoss 5.x 上使用 JPA2? (或如何消除类加载隔离问题?)

我希望JBoss只使用位于我的war文件中的依赖项。每次我部署这个war文件时,JBoss仍然使用它自己的jar。这是我使用的jboss-web.xml:my.package:loader=my-app.warjava2ParentDelegation=false和jboss-classloading.xml:JBoss5.1.0.GA 最佳答案 1>总结最初,我尝试过此类加载隔离,用于使用JBoss5.1.0.GA加载Hibernate3.6.4jar。这绝对不可能。后台有一些魔法可以阻止您使用任何支持JPA2的Hibernate

java - 更有用的 Criteria API 替代品

Criteria比使用JPQL或原始SQL有一些优势,如thisanswer中所述:类型安全;重构友好性;减少对字符串的依赖(但仍然有一些)。还有一个非常大的缺点:它们的可读性较差,而且非常丑陋。是否有用于访问类型安全且可读的关系数据库的(非JPA)JavaAPI? 最佳答案 TimoWestkämperQueryDSL做得很好.这个库提供了一个DSL来查询不同的持久性提供者(JPA、MongoDB、Lucene...)。但我经常使用手工制作的解决方案来简化最常见的查询(列出限制其某些字段的实体),防止我总是写相同的行。对于大多数复

java - 带有数字和下一个、上一个的 Jpa 分页

我很抱歉问这个问题,如果有人已经问过这个问题,并且问一个可能很愚蠢的问题,但我是新手,你是专家,我很乐意从你的专家建议和经验中学习。我想为每页显示200条记录的应用程序添加分页。页面底部应该有数字。如果有1050个,第一页显示100,页面底部显示数字1,2,3,4,5&6。完成此操作的一般逻辑是什么?我知道数据库每次都必须选择200,我必须跟踪第一条记录。有没有办法知道总共将返回多少条记录,以便我可以知道要在页面底部显示多少个数字?是否需要选择count()语句或其他语句?对于1050条记录,将显示数字1、2、3、4、5和6,单击每个记录都需要调用服务器。有没有办法知道下次调用服务器时

java - JPA : how to map SQL Server uniqueidentifier type

我已经继承了一个试图通过JPA映射的SQLServer数据库。许多表都有一个uniqueidentifier列。我正在尝试像这样映射它们:@Id@GenericGenerator(name="generator",strategy="guid",parameters={})@GeneratedValue(generator="generator")@Column(name="APPLICATION_ID")privateStringid;Hibernate提示:Found:uniqueidentifier,expected:varchar(255) 最佳答案

java - 我应该将时区与 Postgres 和 JDBC 的时间戳分开存储吗?

似乎(也许我错了)如果您想保留JDBC和Postgres发生某些事情时的时区,您需要将时区与时间戳分开存储。也就是说,我更愿意给我的ORM/JDBC/JPA一个带有时区America/New_York的JavaCalendar(或JodaDataTime)>到Postgrestimestampz字段。并且无论服务器时区(或默认为UTC)如何,我都希望在检索时返回一个带有时区America/New_York的Calendar。但只要看看大多数JDBC代码(以及依赖于它但不会发生的事情)。这是正确的吗?当postgres支持时,我需要将tz存储在另一个字段中,这似乎很荒谬。因此似乎只有两个

java - 如何将多个日期间隔搜索与 Spring Data JPA 的 CrudRepository 结合起来?

spring-data提供了一种通过定义方法名来生成SQL搜索的方式。以下工作正常:@EntitypublicclassBook{Datefrom,to;}//CrudRepositoryfindByFromDateBetween(Datedeparture,Datearrival);但是为什么下面的方法不起作用呢?findByFromDateBetweenAndToDateBetween(Datedeparture,Datearrival);要连接两个日期搜索,我必须重复日期:findByFromDateBetweenAndToDateBetween(Datedeparture,Da

java - JPA namedQuery 中的 COALESCE

我有以下命名查询selectnewtest.entity.Emp(COALESCE(k.projectId,'N')asprojectId,k.projectName)fromEmpoinnerjoino.projectsk但是我得到了错误expectingRIGHT_ROUND_BRACKET,found'('如何处理namedQuery中的COALESCE?在JPA中还有其他方法可以处理空值吗? 最佳答案 合并是supportedbyJPA2.0API.new构造是Hibernate专有的,不一定在所有JPA实现中都受支持。首先

java - Spring Data JPA 更新方法

我仍在寻找Spring的DataJPA中的更新方法来更新关系数据库中持久存在的给定Object。我只找到了解决方案,在这些解决方案中,我被迫通过@Query注释(与@Modifying相比)指定某种更新查询,例如:@Modifying@Query("UPDATEUseruSETu.firstname=?1,u.lastname=?2WHEREu.id=?3")publicvoidupdate(Stringfirstname,Stringlastname,intid);为了构建查询,我还必须传递单个参数而不是整个对象。但这正是我想要做的(传递整个对象)。所以,我要寻找的是这样一种方法:p

java - 如何使用 Gradle 5.x 生成 JPA 元模型

我目前正在尝试从gradle4.8.1升级到5.1.1,但未能为我们的代码生成hibernate元模型。问题是gradle5忽略了通过编译类路径传递的注释处理器,但我发现的所有插件都在使用它(即“-proc:only”)。我试图明确指定注释处理器,正如gradle(https://docs.gradle.org/4.6/release-notes.html#convenient-declaration-of-annotation-processor-dependencies)所指出的那样annotationProcessor'org.hibernate:hibernate-jpamod

java - JPA : Many to Many query help needed

我有四个实体参与了一个查询,但我遇到了一些麻烦。关系如下:Exchange----*Contract*----*Combo----*Trade和(简化)实体如下:@EntitypublicclassExchangeimplementsSerializable{@Id(name="EXCHANGE_ID")privatelongexchangeId;@ColumnprivateStringexchangeShortName;}@EntitypublicclassContractimplementsSerializable{@IdprivatelongcontractId;@Columnp