在Hibernate中将DTO对象的值保存到实体

时间:2016-11-14 11:27:28

标签: java spring hibernate dto

在我的hibernate项目中,我使用getter和setter来保存数据。在每次我需要使用get方法和set方法为每个变量保存。 问题是有没有方便的方法将DTO转换为实体类? reagrds

1 个答案:

答案 0 :(得分:0)

我正是为此用例创建了Blaze-Persistence Entity Views。您实际上将JPA实体的DTO定义为接口,并将其应用于查询。它支持映射嵌套的DTO,集合等,本质上是您期望的所有内容,此外,它还将提高查询性能,因为它将生成查询,仅提取您实际为DTO所需的数据。

一个实体视图示例可能像这样

@EntityView(Person.class)
interface PersonDto {
  @Mapping("CONCAT(firstName, ' ', lastName)")
  String getName();
}

查询看起来像这样

List<PersonDto> dtos = entityViewManager.applySetting(
  EntityViewSetting.create(PersonDto.class),
  criteriaBuilderFactory.create(em, Person.class)
).getResultList();