【问题标题】:Easily create instance of Java DTO object from Scala code从 Scala 代码轻松创建 Java DTO 对象的实例
【发布时间】:2014-02-13 23:20:56
【问题描述】:

我正在转换我的 GWT 项目的服务器端使用 Scala 而不是 Java。我有许多 RPC servlet,它们执行 DB 查找,然后将结果映射到 ArrayList,其中可能是 SomeDTO 之类的类

  override def listTrips(): util.ArrayList[TripRoleDTO] = {
    val trd = new TripRoleDTO
    trd.setRoleType(RoleType.TripAdmin)
    trd.setTripName(sessionDataProvider.get().getSessionUser.getEmail)
    val res: util.ArrayList[TripRoleDTO] = new util.ArrayList[TripRoleDTO]()
    res.add(trd)
    res
  }

而不是

@Override
public ArrayList<TripRoleDTO> listTrips() {
    final SessionData sessionData = sessionDataProvider.get();
    final List<TripRole> tripsForUser = tripAdminProvider.get().listTripRolesForUser(sessionData.getSessionUser().getId());
    return newArrayList(transform(tripsForUser, DTOConverter.convertTripRole));
}

请注意,Java 实现实际上进行了 DB 调用(我仍在 Scala 中弄清楚这一点),但它通过 Google Guava 的 Iterables.transform 方法进行 DTO 转换。

由于 DTO 对象需要是 GWT 客户端可以使用的 .java 文件,因此将我的 Scala 域对象转换为 DTOS 的优雅方法是什么?

【问题讨论】:

    标签: java scala gwt


    【解决方案1】:

    使用 GWT RequestFactory 自动创建 DTO。 DTO 可以简单地使用接口和 @ProxyFor 注释来定义,请参阅提供的链接中的示例。

    如果由于某种原因使用 RequestFactory 不是替代方案,那么考虑使用 Dozer 将域对象映射到 DTO,这经常与 GWT 一起使用。

    【讨论】:

      猜你喜欢
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      • 1970-01-01
      • 2016-06-26
      • 1970-01-01
      相关资源
      最近更新 更多