【发布时间】:2016-11-14 11:27:27
【问题描述】:
在我的休眠项目中,我使用 getter 和 setter 来保存数据。每次我都需要使用 get 方法和 set 方法来保存每个变量。 问题是有什么方便的方法可以将 DTO 转换为实体类? 回复
【问题讨论】:
-
你可以使用一个库来映射 java bean 看看这个答案,你可以找到一些有趣的库来处理这样的事情:stackoverflow.com/a/1432956/4751165
在我的休眠项目中,我使用 getter 和 setter 来保存数据。每次我都需要使用 get 方法和 set 方法来保存每个变量。 问题是有什么方便的方法可以将 DTO 转换为实体类? 回复
【问题讨论】:
我为那个用例创建了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();
【讨论】: