Squeryl没有将带注释的val构造函数参数检测为瞬态

时间:2013-12-23 16:02:38

标签: scala annotations squeryl

我有一个带有构造函数参数的类,如下所示:

@Transient val applicationType: Option[String] = None,

但是,Squeryl没有注意到@Transient注释,仍然试图从数据库中读取该字段的值。但是数据库中没有这样的字段。

到目前为止我的调查显示,正如我所怀疑的那样,Squeryl只查看方法和字段注释,而注释仅由Scala编译器放置在构造函数的参数上(我可以通过javap看到它)。

那么我该如何解决这个问题呢?

该类不是案例类,因为我正在扩展案例类,案例类不应该扩展其他案例类。

2 个答案:

答案 0 :(得分:2)

您还可以告诉scalac您希望注释显示在字段上。有关正确的语法,请参阅this answer

答案 1 :(得分:0)

只需将构造函数参数更改为普通参数:

_applicationType: Option[String] = None,

并单独介绍val

@Transient val applicationType = _applicationType