共计 919 个字符,预计需要花费 3 分钟才能阅读完成。
单向一对多
@Data | |
@Entity | |
@Table(name = "banner") | |
public class Banner { | |
@Id | |
private Integer id; | |
private String name; | |
@OneToMany(fetch = FetchType.LAZY) | |
@JoinColumn(name = "bannerId", referencedColumnName = "id") | |
private List<BannerItem> items; | |
} |
下面为双方配置,@JoinColumn
注解外面 name 示意多方中配置的外键名称,referencedColumnName 为外键对应的双方主键。
@Data | |
@Entity | |
@Table(name = "banner_item") | |
public class BannerItem { | |
@Id | |
private Integer id; | |
private String img; | |
private Integer bannerId; | |
private String name; | |
} |
下面为双方配置,没有什么非凡的。
双向一对多
@Data | |
@Entity | |
@Table(name = "banner") | |
public class Banner { | |
@Id | |
private Integer id; | |
private String name; | |
@OneToMany(fetch = FetchType.LAZY, mappedBy="banner") | |
private List<BannerItem> items; | |
} |
双向时双方不须要 @JoinColumn 注解,须要在 @OneToMany 上增加 mappedBy 属性指明多方的映射属性。
@Data | |
@Entity | |
@Table(name = "banner_item") | |
public class BannerItem { | |
@Id | |
private Integer id; | |
private String img; | |
private Integer bannerId; | |
private String name; | |
@ManyToOne | |
@JoinColumn(name="bannerId") | |
private Banner banner; | |
} |
多方的注解应用 @ManyToOne,标注在映射双方的属性上,同时须要加上 @JoinColumn 注解指明外键。
正文完