我是休眠的新手,尝试使用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; }


在此示例中,CustomerOrder都是用@Entity@Table注释的类,它们与数据库中的CUSTOMERORDER表相对应。这些表中的任何其他列也将映射到相应的实体类中。 @OneToMany@ManyToOne@ManyToMany用于在表之间映射外键,并允许您直接从实体实例直接引用父/子行/对象。

使用这些注释,您可以根据需要将尽可能多的外键引用映射到其他表。

09-10 21:23