如何解决Spring Boot JPA本机查询通过将自定义函数应用于记录来
我正在使用JDK 13和Spring Boot 2.3。
我有以下实体:
Entity
@Table(name = "user_permission")
public class Permission {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
// Constructors and getter/setter ommitted
}
public class Role {
private Long id;
private String name;
private List<Permission> permissions;
//Constructor and getter/setter ommitted
}
存储库-权限
@Repository
public interface PermissionRepository extends JpaRepository<Permission,Long> {
List<Permission> findAll();
Optional<Permission> findById(Long id);
}
我正在尝试编写Role存储库(自定义方法),我的本机查询将在该存储库中返回
Query query = entityManager.createNativeQuery(
"select r.id,r.\"name\",p.id permission_id FROM my_table"
);
基本上,它将返回该角色的role.id,role.name和Permission_id。
一个角色可以具有多个权限。
例如
我想获取上面的结果列表,对每行应用“ findById(1)”(例如)方法并创建Permission对象,因此理想情况下,每行都可以转换为Role Object,即。
id,name,List<Permission>
稍后我将根据角色分组。
如何将nativequery输出转换为List? 注意:角色具有第3个元素作为“权限”列表,输出将仅给出permisison_id,需要基于“ permission_id”构建权限对象(存在该方法)并转换为“列表”(每行仅在列表中一个元素)。以后将根据分组依据进行合并。
即
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。