[英]JPA 2 different native queries with same class as entity
I am new to JPA.我是 JPA 的新手。 Currently I am writing a native query with @Query
annotation.目前我正在编写带有@Query
注释的本机查询。 I have a class similar to the below我有一个类似于下面的 class
@Column(name="field1")
Private String field1;
@Column(name="field2")
Private String field2;
@Column(name="field3")
Private String field3;
I am writing 2 queries where 1 query has field 2 included in select projection and other does not include field 2. How can I use same class for both of the queries?我正在编写 2 个查询,其中 1 个查询的字段 2 包含在 select 投影中,而其他不包括字段 2。如何对两个查询使用相同的 class? I tried @Transient
annotation.我尝试@Transient
注释。 But it made values of both queries as null.但它将两个查询的值都设为 null。
You have lot of options to do that.你有很多选择可以做到这一点。
Option 1: Projections from Spring Data JPA without @Query选项 1:不使用 @Query 的 Spring 数据 JPA 的预测
interface MyProjection{
String getField1();
String getField3();
}
public interface MyRepository extends JpaRepository<Entity, Integer> {
List<MyProjection> findAll();
}
Option 2: Projections from Spring Data JPA with @Query (quite similar to Option 1)选项 2:Spring 数据 JPA 与 @Query 的预测(非常类似于选项 1)
interface MyProjection{
String getField1();
String getField3();
}
public interface MyRepository extends JpaRepository<Entity, Integer> {
@Query("SELECT p FROM Entity p")
List<MyProjection> customFindEntity();
}
Option 3: Projections from Spring Data JPA with @Query without any interface选项 3:来自 Spring 数据 JPA 的投影,带有@Query,没有任何接口
public interface MyRepository extends JpaRepository<Entity, Integer> {
@Query("SELECT p.field1, p.field2 FROM Entity p")
List<Object> customFindEntity();
}
Option 4: Projections from Spring Data JPA with @Query an native query (quite similar to Option 2)选项 4:来自 Spring 数据 JPA 的投影与 @Query 原生查询(非常类似于选项 2)
interface MyProjection{
String getField1();
String getField3();
}
public interface MyRepository extends JpaRepository<Entity, Integer> {
@Query("SELECT field1, field3 FROM Entity p", nativeQuery = true)
List<MyProjection> customFindEntity();
}
Option 5: Use Native query and return list of object array选项5:使用object数组的Native查询和返回列表
You have to extract your data from the list of array.您必须从数组列表中提取数据。
public interface MyRepository extends JpaRepository<Entity, Integer> {
@Query("SELECT field1, field3 FROM Entity p", nativeQuery = true)
List<Object[]> customFindEntity();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.