java - 如何使用标准构建器返回列表属性?
问题描述
我有 3 节课
@Entity
@Table(name = "usuario")
public class Usuario {
private Long id;
private String email;
private String login;
private String nome;
private String fone;
private String senha;
private List<Perfil> perfis = new ArrayList<>();
// getters && setters
}
public class PerfilDTO {
private Long id;
private String descricao;
// getters && setters
}
public class UsuarioDTO {
private Long id;
private String email;
private String login;
private String nome;
private String fone;
private List<PerfilDTO> perfis;
// Constructor
public UsuarioDTO(Long id, String email, String
login, String nome, String fone, **List<PerfilDTO>
perfis**) {....}
// getters && setters
}
如何使用标准构建器创建 UsuarioDTO?
CriteriaBuilder cb = manager.getCriteriaBuilder();
CriteriaQuery<UsuarioDTO> criteriaQuery = cb.createQuery(UsuarioDTO.class);
Root<Usuario> rootFrom = criteriaQuery.from(Usuario.class);
criteriaQuery.select(cb.construct(UsuarioDTO.class,
rootFrom.get("id"),
rootFrom.get("email"),
rootFrom.get("login"),
rootFrom.get("fone"),
**// ***** HERE HOW CREATE A LIST of PerfilDTO to pass to parameters of UsuarioDTO constructor ?**
rootFrom.get("perfis").get("id"),
rootFrom.get("perfis").get("descricao")
));
第一类 - Usuario.class - 是一个具有 oneToMany 属性的实体(List perfis);
第二类 - PerfilDTO.class - 是一个几乎没有 Perfil 属性的 DTO;
第三类 - UsuarioDTO.class - 是 Usuario 的 DTO,具有很少的 Usuario.class 属性,但具有属性 List perfis。
如果你看到了,我需要创建一个在 UsuarioDTO.class 构造函数中使用的 PerfilDTO 列表。
但是,我该怎么做?
tnx 高级
解决方案
推荐阅读
- wordpress - 没有插件的站点地图
- python - Python版本麻烦
- python - 将图像编码/解码为 base64 flask&python
- excel - 如何解决从excel复制到word的运行时错误
- facebook-opengraph - Facebook OpenGraph 看不到我的元标记
- angular - 如何在cordova应用程序上实现没有googleplus插件的Google OAuth登录?
- r - 返回相应的行名而不是 r 中的数据
- django - django中同类型关系的多种类型
- visual-studio-2010 - CMake 为 VS2017 生成的项目需要安装 VS2010
- namespaces - 可以描述 SPARQL 查询的 RDF 命名空间?