【发布时间】:2018-09-22 20:16:01
【问题描述】:
我有一个四实体类,如下所示。 映射要求就像- 1-客户可能有多个地址 2-客户可能有多个唯一的联系电话。 3-客户可能有多个唯一的电子邮件 ID。 在运行应用程序时,我得到了 MultipleBagFetchException 因为多集合或者可能是错误映射的问题。任何人都可以帮助我... 谢谢
第一
public class Customer{
@Id
@GeneratedValue(generator = "uuid")
@Access(AccessType.PROPERTY)
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Type(type = "uuid-char")
@Column(columnDefinition = "VARCHAR(36)", name = DatabaseConstants.ID)
private UUID id;
private String firstName;
private String middleName;
private String lastName;
private Date dob;
@OneToOne(cascade = CascadeType.ALL)
private Gender gender;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "customer")
@JoinColumn(name="department_id")
@Embedded
private List<Address> address;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "customer")
@Embedded
private Set<Email> email;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "customer")
@Embedded
private Set<Mobile> mobile;
}
第二-
public class Address {
@Id
@GeneratedValue(generator = "uuid")
@Access(AccessType.PROPERTY)
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Type(type = "uuid-char")
@Column(columnDefinition = "VARCHAR(36)", name = DatabaseConstants.ID)
private UUID id;
private String country;
private String state;
private String city;
private String streetAddress;
private String zip;
private String addressType;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
private Customer customer;
}
第三-
public class Email {
@Id
@GeneratedValue(generator = "uuid")
@Access(AccessType.PROPERTY)
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Type(type = "uuid-char")
@Column(columnDefinition = "VARCHAR(36)", name = DatabaseConstants.ID)
private UUID id;
@javax.validation.constraints.Email
private String emailId;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
private Customer customer;
private boolean primary;
}
第四-
public class Mobile {
@Id
@GeneratedValue(generator = "uuid")
@Access(AccessType.PROPERTY)
@GenericGenerator(name = "uuid", strategy = "uuid2")
@Type(type = "uuid-char")
@Column(columnDefinition = "VARCHAR(36)", name = DatabaseConstants.ID)
private UUID id;
private String mobileNumber;
private boolean primary;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
private Customer customer;
}
【问题讨论】:
标签: java hibernate annotations mapping