mysql – SORM:尝试引用一个未经存在的实体
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql – SORM:尝试引用一个未经存在的实体,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1104字,纯文字阅读大概需要2分钟。
内容图文
我正在使用带有scala 2.10的playframework 2.2.1和用于mysql db的SORM 0.3.10.
当我试图保存简单案例类的实例时:
case class User(email: String, password: String, token: String, verified: Boolean = false, atoken: UserAuthToken) {
def save = Db.save[User](this)
}
我遇到这个错误:
sorm.core.SormException: Attempt to refer to an unpersisted entity: UserAuthToken(7779235c1fd045f39ced7674a45baaa2,1387039847)
我做错了什么? UserAuthToken也很简单:
case class UserAuthToken(token: String = UUID.randomUUID().toString.replace("-",""), expire: Int = (Calendar.getInstance().getTimeInMillis/1000).toInt + 60*60*365)
这两个类都在Db对象中注册为实体.
解决方法:
UserAuthToken是一个实体,意味着它映射到DB中的某一行.为了使您和SORM能够识别该行(和实体),Db.save(..)方法返回带有Persisted的UserAuthToken类型的值,即带有标识信息的原始值的副本.
User也是一个实体,但它引用UserAuthToken,这意味着它映射到的行必须在UserAuthToken上存储标识信息.因此,为了能够持久保存User类型的值,它必须仅引用已经持久化的UserAuthToken.即:
..
val persistedUserAuthToken = Db.save(userAuthToken)
val persistedUser = Db.save( User(.., atoken = persistedUserAuthToken) )
内容总结
以上是互联网集市为您收集整理的mysql – SORM:尝试引用一个未经存在的实体全部内容,希望文章能够帮你解决mysql – SORM:尝试引用一个未经存在的实体所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。