我是hibernate的新手,尝试使用hql从2个以上的表中获取信息,如果我们提取我们需要放入POJO的信息,那么如何为每个列映射到我们从中得到的信息查询?
尝试使用@secondarytable()和@Table,但它不能允许超过1个辅助表注释。
那么我们不能在hibernate中加入超过2个表吗?
答案 0 :(得分: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
用于映射表之间的外键,并允许您直接从实体实例直接引用父/子行/对象。
使用这些注释,您可以根据需要将任意外键引用映射到其他表。