ScalaのEJBをJavaから参照する
以前からscalaでEJBを書いていたが、ここへ来て問題発生。JavaとScalaの混在プロジェクトでJavaからScalaのクラスを参照したときにコンパイルエラーにはならないのに、eclipseのエディタ上ではエラーの表示がされてしまう。これを解決するには
Java同様、Scalaのクラスもパッケージと同じ位置に置く。
case class Foo(
@(Id @field) x:Int,
@(Temporal @field)(value=TemporalType.DATE) @BeanProperty nyukinDate:Date,
@(Column @field)(columnDefinition="numeric(13, 2)") @BeanProperty var shohizei:Double,
@(Column @field)(columnDefinition="text", nullable=false) @BeanProperty var userName:String = _
y:String
)
をやめて
import scala.annotation.target.fieldobject ScalaAnnotations {
type Id = javax.persistence.Id @field
type Temporal = javax.persistence.Temporal @field
type Column = javax.persistence.Column @field
}
を定義し、
import boo.ScalaAnnotations._とする。
case class Foo(
@Id x:Int,
@Temporal(TemporalType.DATE) @BeanProperty nyukinDate:Date,
@Column(columnDefinition="numeric(13, 2)") @BeanProperty var shohizei:Double,
@Column(columnDefinition="text", nullable=false) @BeanProperty var userName:String = _
y:String
)
@NamedQueries ({
Array(new NamedQuery(name = "foo.findByZoo",
query="""SELECT foo FROM Foo foo
Where id = :id""")
)
})
を
@NamedQueries ({
Array(new NamedQuery(name = "foo.findByZoo",
query="SELECT foo FROM Foo foo Where id = :id")
)
})
として、"""をやめると解決できる。どうも妙な現象で、eclipseの問題のように見える。