我正在使用hibernate开发一个Java EE项目,我正面对一个类似于这个的类图:
我想要的是订购产品的客户列表。这意味着我的命名查询必须获取所需产品的ID,并且我希望我的命名查询在Customer类上编写。
你可以帮我解决这个问题吗?这些是我的课程:
@Entity
@Named Queries({
/* NAMED QUERY THAT I M LOOKING FOR */
})
public class customer implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "ID_CUSTOMER", nullable = false)
private Integer idCustomer;
@Size(max = 255)
@Column(name = "NAME", length = 255)
private String name;
@Size(max = 255)
@Column(name = "EMAIL", length = 255)
private String email;
@JoinColumn(name = "ID_ORDER", referencedColumnName = "ID_ORDER", nullable = true)
@ManyToOne(optional = false)
private GroupeAccess idOrder;
}
@Entity
public class order implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "ID_ORDER", nullable = false)
private Integer idOrder;
private Date date;
@JoinTable(name = "order_product", joinColumns = {
@JoinColumn(name = "ID_ORDER", referencedColumnName = "ID_ORDER", nullable = false)}, inverseJoinColumns = {
@JoinColumn(name = "ID_PRODUCT", referencedColumnName = "ID_PRODUCT", nullable = false)})
@ManyToMany
private Collection<product> productCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idCustomer")
private Collection<customer> customerCollection;
}
@Entity
public class product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@NotNull
@Column(name = "ID_PRODUCT", nullable = false)
private Integer idProduct;
private Date date;
@ManyToMany(mappedBy = "productCollection")
private Collection<Acces> orderCollection;
}
答案 0 :(得分:1)
Select o.customerCollection from Order o where :product in o.productCollection