取决于Account和AccountDto的外观以及所需的性能。您可以手动或使用Map器(例如MapStruct)将Java代码中的实体对象转换为DTO对象。 我认为这是一个完美的Blaze-Persistence实体视图用例。 我创建这个库是为了允许在JPA模型和自定义接口或抽象类定义的模型之间进行简单的Map,就像Spring Data Projections一样。其思想是您可以按照自己喜欢的方式定义目标结构(域模型),并通过JPQL表达式将属性(getter)Map到实体模型。 使用Blaze-Persistence Entity-Views时,您的用例的DTO模型可能如下所示:
@EntityView(Account.class)
public interface AccountDto {
@IdMapping
Long getId();
String getName();
}
查询是将实体视图应用于查询的问题,最简单的是按id查询。 AccountDto a = entityViewManager.find(entityManager, AccountDto.class, id); Spring Data 集成允许您像Spring Data 投影一样使用它:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#spring-data-features
1条答案
按热度按时间1u4esq0p1#
取决于
Account
和AccountDto
的外观以及所需的性能。您可以手动或使用Map器(例如MapStruct)将Java代码中的实体对象转换为DTO对象。我认为这是一个完美的Blaze-Persistence实体视图用例。
我创建这个库是为了允许在JPA模型和自定义接口或抽象类定义的模型之间进行简单的Map,就像Spring Data Projections一样。其思想是您可以按照自己喜欢的方式定义目标结构(域模型),并通过JPQL表达式将属性(getter)Map到实体模型。
使用Blaze-Persistence Entity-Views时,您的用例的DTO模型可能如下所示:
查询是将实体视图应用于查询的问题,最简单的是按id查询。
AccountDto a = entityViewManager.find(entityManager, AccountDto.class, id);
Spring Data 集成允许您像Spring Data 投影一样使用它:https://persistence.blazebit.com/documentation/entity-view/manual/en_US/index.html#spring-data-features
最好的部分是,它只会获取实际需要的状态!