将Scala Slick对象映射到Java POJO或从Java POJO映射

时间:2014-06-10 14:01:00

标签: java scala slick pojo orika

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

除了编写手动映射代码之外,还有一些不错的对象映射器库或其他解决方案吗?我之前使用过Orika对象映射器(仅限Java),并且它具有一些很好的功能,例如默认情况下具有相同名称的映射属性,能够按类型提供自定义映射器。

3 个答案:

答案 0 :(得分:1)

annotating your Scala objects与[{1}}之类的声音会很有帮助。

  

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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