0

我想在我的后端代码中使用 Scala Slick,并且我还需要支持需要将我的域模型公开为普通 Java POJO 的遗留 Web 服务 API。

除了编写手动映射代码之外,是否有一些不错的对象映射器库或其他解决方案来完成这项任务?我以前使用过 Orika 对象映射器(仅在 Java 中),它具有一些不错的功能,例如默认映射具有相同名称的属性,能够按类型提供自定义映射器。

4

3 回答 3

1

听起来用注释你的 Scala 对象@BeanProperty会很有帮助。

这很酷;只需将@BeanProperty 标记添加到您的类字段,就会自动为您生成get 和set(getter 和setter)JavaBean 方法。

我不相信它会处理 Java/Scala 集合之间的转换(例如,在它们的Map/List等相关概念之间),但它本身会实现一些集合的复制,这本身可能并不直观。

于 2014-06-10T14:03:34.250 回答
1

您可以使用可扩展的 Slick 代码生成器生成到现有类而不是新案例类的映射。您可能想要enable = false代码生成器的一些内部类并覆盖 EntityType 以生成简单的工厂而不是案例类。请参阅http://slick.typesafe.com/doc/2.0.2/code-generation.html

我将在 Scala Days 2014 上讨论代码生成器,这可能也有助于解决这个问题。

于 2014-06-10T15:07:17.820 回答
0

另一种选择是使用ModelMapper及其ValueReader SPI。虽然没有与 Slick 的开箱即用集成,但jOOQ 集成文档实现可以让您了解将某些数据模型通用映射到 POJO 是多么容易。

于 2014-06-11T22:21:12.937 回答