Spring 数据 JPA - 1.5 将结果转换为非实体 POJO class
Spring data JPA - 1.5 convert result into non - entity POJO class
我正在使用 Spring 数据 JPA 版本 1.5
@SqlResulttSetMapping 在低于
的版本中不支持
SELECT
bc.badge_id , bc.badge_progress , bc.badge_level, bc.badge_unique_key ,
b.badge_name , b.badge_type , b.how_to_earn , b.description , b.unit ,
b.level1_milestone , b.level2_milestone , b.level3_milestone , b.image_url
FROM badge_calculation bc
INNER JOIN badges b ON b.id = bc.badge_id
where bc.user_id = '3';
数据库中有两个表,我想要它们中的一些列,并且想将结果映射到非实体 POJO class。它包含我从两个表中需要的字段。
有什么解决办法吗?
在存储库中,您可以执行类似这样的操作。您可以收到一个对象数组列表,然后您可以遍历这些对象数组并对其进行任何您喜欢的操作。执行此查询并在后面放置断点以检查列表并查看字段类型。
@Query( value = ""
+ " SELECT "
+ "bc.badge_id , bc.badge_progress , bc.badge_level, bc.badge_unique_key , "
+ "b.badge_name , b.badge_type , b.how_to_earn , b.description , b.unit , "
+ "b.level1_milestone , b.level2_milestone , b.level3_milestone , b.image_url "
+ "FROM badge_calculation bc "
+ "INNER JOIN badges b ON b.id = bc.badge_id "
+ "where bc.user_id = :userId", nativeQuery = true )
List<Object[]> runThisHere( @Param( "userId" ) int userId);
我正在使用 Spring 数据 JPA 版本 1.5
@SqlResulttSetMapping 在低于
的版本中不支持SELECT
bc.badge_id , bc.badge_progress , bc.badge_level, bc.badge_unique_key ,
b.badge_name , b.badge_type , b.how_to_earn , b.description , b.unit ,
b.level1_milestone , b.level2_milestone , b.level3_milestone , b.image_url
FROM badge_calculation bc
INNER JOIN badges b ON b.id = bc.badge_id
where bc.user_id = '3';
数据库中有两个表,我想要它们中的一些列,并且想将结果映射到非实体 POJO class。它包含我从两个表中需要的字段。 有什么解决办法吗?
在存储库中,您可以执行类似这样的操作。您可以收到一个对象数组列表,然后您可以遍历这些对象数组并对其进行任何您喜欢的操作。执行此查询并在后面放置断点以检查列表并查看字段类型。
@Query( value = ""
+ " SELECT "
+ "bc.badge_id , bc.badge_progress , bc.badge_level, bc.badge_unique_key , "
+ "b.badge_name , b.badge_type , b.how_to_earn , b.description , b.unit , "
+ "b.level1_milestone , b.level2_milestone , b.level3_milestone , b.image_url "
+ "FROM badge_calculation bc "
+ "INNER JOIN badges b ON b.id = bc.badge_id "
+ "where bc.user_id = :userId", nativeQuery = true )
List<Object[]> runThisHere( @Param( "userId" ) int userId);