关于jpa:JPA一对多多对多配置

65次阅读

共计 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 注解指明外键。

正文完
 0