caseクラスでパラメータにアノテーション 続き
前回caseクラスでパラメータにアノテーションを書いても効かなかったと書きましたが、正確にはjavaのアノテーションは効かないということでした。
case class Shohin (
@BeanProperty pk:String
これは効くけれど、
case class Shohin (
@Column columnDefinition="text") pk:String
これは効かない。これが効かないのはしょうがないとしても、
case class Shohin (
@Id pk:String
これが効かないと、EJBコンテナにデプロイしたときにエラーになってしまうので、致命的。それでcaseクラスを諦めていたわけですが、
http://www.davidgreco.it/MySite/Blog/Entries/2011/2/16_Scala_and_JPA__a_couple_of_hints.html
に解決方法がありました。
import scala.annotation.target._
case class Shohin (
@(Id @field) @(Column @field)(columnDefinition="text") pk:String
とするということです。なにはともあれ、エンティティビーンにcaseクラスが使えるようになったのは、とてもうれしい。