如何在Scala 2.8中使用@PersistentCapable注释

时间:2010-06-03 06:51:57

标签: annotations jdo scala-2.8

我正在从Scala 2.7.7切换到Scala 2.8.0RC3,现在我的一些类不再编译了。问题出在@PersistentCapable注释:

import javax.jdo.annotations._
import java.util.Date

@PersistenceCapable{identityType=IdentityType.APPLICATION}
class Counter(dt: Date, cName: String, vl: int) {
 <.. snip ..> 
}

此代码导致以下编译错误:

[ERROR] /Users/gero/prive/kiva/kivanotify-gae/src/main/scala/net/vermaas/kivanotify/model/LoanProcessed.scala:7: error: expected start of definition
[INFO] @PersistenceCapable{val identityType = IdentityType.APPLICATION}

我已经尝试了几种变体,做了一些谷歌搜索,但没有运气。 关于如何在Scala 2.8.0 RC3中使用@PersistentCapable注释的任何想法?

谢谢, 格罗

3 个答案:

答案 0 :(得分:2)

2.8中的语法已经改变,你应该使用命名参数:

@Table(name = "projects")
class Project(name: String) {
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  var id: Int = _
}

http://scala-programming-language.1934581.n4.nabble.com/JPA-annotations-fails-when-using-2-8-beta-also-rc2-td1935831.html

答案 1 :(得分:1)

尝试@PersistenceCapable(identityType = IdentityType.APPLICATION)

注意(),而不是{}

答案 2 :(得分:0)

没有找到能让我再次使用注释的解决方案,但当然你可以切换到将JDO元数据放入XML文件......这就是我所做的。宁愿使用注释,但至少我现在可以继续。

格罗