
196
|
第
12
章
示例 12-4:映射到数据库表的 Kotlin 类
@Entity
class Article(
var title: String,
var headline: String,
var content: String,
@ManyToOne var author: User,
var slug: String = title.toSlug(),
var addedAt: LocalDateTime = LocalDateTime.now(),
@Id @GeneratedValue var id: Long? = null)
@Entity
class User(
var login: String,
var firstname: String,
var lastname: String,
var description: String? = null,
@Id @GeneratedValue var id: Long? = null)
示例中展示的 Article 与 User 类在属性上使用 var 声明,甚至使生成的主键字段可
空。用 Hibernate 的话(最常见的 JPA 提供者仍然是 Hibernate),一个空主键(在这里用
@Id 注解)表明实例处于过渡状态,这意味着对应的数据库表中没有行与该实例相关联。
当你第一次实例化该类但尚未保存它时,或者你已经从数据库中删除该行并且该实例仍
在内存中时,就会发生这种情况。
@GeneratedValue 注解指示数据库本身正为主键提供值。 ...