问题描述
我正在使用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 (将#修改为@)