私はこの (少なくとも私にとっては) 興味深いタスクに直面しています: POJO のようなオブジェクトから SQL 挿入ステートメントを取得することです。単一の DB テーブルにデータを挿入するだけでよいので、Scala アプリケーションと DB の間にフレームワークを追加する必要はありません。
したがって、私のクラスの属性がDBテーブルの属性と同じ名前であると仮定すると、このようなクラスから取得するためにScalaリフレクションを使用したいと思います
class MyDataObj {
var a:Int = 345
var b:Boolean = false
var c:Double = 1243.98
var d:String = "A random string"
}
このような SQL 挿入ステートメント
INSERT INTO table_a (a, b, c, d) values (345, false, 1243.98, 'A random String');
必要なのは、
1) クラス属性への
アクセス 2) 属性タイプへの
アクセス 3) オブジェクト インスタンスの属性値へのアクセス
このようなものを得るために
List( ("a","Int",345), ("b","Boolean",false), ("c","Double",1243.98), ... )
それは私たちが望むものに簡単に変換できます。
今まで、属性名にアクセスする方法を見つけたところです
val columns = typeOf[MyDataObj].members.view.filter{_.isTerm}.
filter{!_.isMethod}.map{_.name}.toList
どうすれば必要な残りを得ることができますか?
いつも応援ありがとうございます。