草庐IT

computer-database-jpa

全部标签

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 - 如何将多个日期间隔搜索与 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

java - jpa和eclipselink的jndi数据库连接

我尝试在Tomcat5.5上结合使用JNDI和eclipseLink/JPA在Java中设置数据库连接。我已经在web.xml和context.xml中配置了JNDI资源。数据库连接与JNDI一起工作,无需使用JPA和eclipseLink。为eclipseLink配置persistence.xml后,出现以下异常。我不知道如何正确配置persistence.xml以使用JNDI数据源进行数据库连接。异常WicketMessage:MethodonFormSubmittedofinterfaceorg.apache.wicket.markup.html.form.IFormSubmit

java - 如何通过JPA注解指定SQL注释?

有没有办法通过JPA注解来指定SQL注释?表和列的注释。 最佳答案 至少对于MySQL是有办法的。这取决于您的数据库引擎。对于MySQL,您可以将注释添加到columnDefinition。这是列的示例:/***Databaseid.*/@javax.persistence.Id@javax.persistence.GeneratedValue(strategy=javax.persistence.GenerationType.AUTO)@javax.persistence.Column(columnDefinition="SMAL

java - 强制 JPA 查询急切地返回所有集合/字段

我有几个场景是服务器使用JPA从数据库中查询对象,然后通过Web服务将对象发送给客户端。由于客户端在这种情况下需要完整的图表,因此我想用预加载覆盖延迟加载的集合,并可能请求批量加载(为了性能)。JPA(或EclipseLink)中是否有一种方法可以以通用方式覆盖查询(无需重写查询)并请求完整的图形? 最佳答案 10.1.3。获取连接JPQL查询可以指定一个或多个连接提取声明,允许查询指定返回实例中的哪些字段将被预取。SELECTxFROMMagazinexjoinfetchx.articlesWHEREx.title='JDJ'上面

java - JPA 仅使用其 ID 保存 "new"实体并引用现有实体?

假设您有一辆带有一系列轮胎的汽车。@EntitypublicclassCar{privateLongid;@OneToMany(mappedBy="car")privateSettires=newHashSet();}@EntitypublicclassTire{privateLongid;...}现在,如果您想添加一辆新汽车并添加现有轮胎,您可以获取整个现有轮胎实体以填充汽车集。是否可以简单地拥有一些TireID并保存Car而无需先将整个Tire实体提取到内存中?如果它只是一个单一的轮胎实例而不是一个轮胎组,有没有办法只用一个轮胎ID来保存它?使用JPA和CriteriaAPI,或者