一对多
和JPA不同,Jimmer不支持单向一对多关联,一对多关联只能作为多对一关联镜像。也就是说,一对多关联必然意味着双向关联。
在下面的代码中
- 
左侧:在多对一一文中我们讨论过的 Book.store
- 
右侧:本文要讨论的一对多关联 BookStore.books,它是Book.store的镜像
- Java
- Kotlin
Book.java
@Entity
public interface Book {
    @ManyToOne
    @JoinColumn(name = "STORE_ID")
    BookStore store();
    ...省略其他代码...
}
Book.kt
@Entity
interface Book {
    @ManyToOne
    @JoinColumn(name = "STORE_ID")
    val store: BookStore
    ...省略其他代码...
}
- Java
- Kotlin
BookStore.java
@Entity
public interface BookStore {
    // `mappedBy`表示`BookStore.books
    // `是`Book.store`的镜像
    @OneToMany(mappedBy = "store")
    List<Book> books();
    ...省略其他代码...
}
BookStore.kt
@Entity
interface BookStore {
    // `mappedBy`表示`BookStore.books`
    // 是`Book.store`的镜像
    @OneToMany(mappedBy = "store")
    val books: List<Book>
    ...省略其他代码...
}
警告
- 
@OneToMany关联仅仅是@ManyToOne关联的镜像,不得使用@JoinColumn和@JoinTable
- 
@OneToMany关联属性必须非null,如果查询父对象并要求抓取其一对多关联属性,那么对于没有对应子对象的父对象而言,该属性的值是一个长度为0的集合,而非null