我是休眠的新手,尝试使用hql从2个以上的表中获取信息,如果我们提取该信息,则需要将其放入POJO中,该如何将每个列映射到从查询中获得的信息?
使用@secondarytable()和@Table进行了尝试,但是它不能允许超过1个辅助表注释。
难道我们不能在休眠状态下连接两个以上的表吗?
最佳答案
您可能希望使用@OneToMany
,@ManyToOne
和/或@ManyToMany
批注来映射项目中所有实体之间的关系。
那些的oracle文档有一些很好的示例,例如以下示例:
示例1:使用泛型的一对多关联
在客户类别中:
@OneToMany(cascade=ALL, mappedBy="customer")
public Set<Order> getOrders() { return orders; }
在订单类中:
@ManyToOne
@JoinColumn(name="CUST_ID", nullable=false)
public Customer getCustomer() { return customer; }
在此示例中,
Customer
和Order
都是用@Entity
和@Table
注释的类,它们与数据库中的CUSTOMER
和ORDER
表相对应。这些表中的任何其他列也将映射到相应的实体类中。 @OneToMany
,@ManyToOne
和@ManyToMany
用于在表之间映射外键,并允许您直接从实体实例直接引用父/子行/对象。使用这些注释,您可以根据需要将尽可能多的外键引用映射到其他表。