如何将数据库表与Hibernate连接起来?
1、当尝试实现图中提供的模式时,拥有Person类本身并不是很有用。
2、该图规定了ticket和people之间的关系是many - to-many,因此使用了join表。
3、对于下面的例子,tickets中的数据如下:
4、person_ticket中的数据如下:
5、您可以在这里看到,一个人拥有许多事件的票(person_id 1),而事件可以有多个票(event_id 1、2、3和5)。
6、修改Person类以保存票券集左佯抵盗合是有用的。这样,从数据库检索到的人员将保存一个Ticket对象列表,如果该人员需要询问售票处他有哪些赛事的票,那么这个列表可能会很有用。
7、您将需要创建一个Ticket类。
8、Hibernate映射文件:Ticket.hbm.xml
9、修改后的Person.hbm.xml
10、Ticket Hibernate映射与您所期望的非常相似。惟一的新信息是,缩村枵沣您需要将eventId字段映射到event_id列—所有先前的示例都具有璜模惜割完全相同的名称。这个映射使您能够为Java和SQL保留适当的命名约定。
11、Person Hibernate映射包含一条新信息,即ticket衡痕贤伎s字段的一组。这引用person_ticket表。key-column番舸榆毛标记指示Hibernate如何执行它的SQL join—person_ticket的person_id列是连接条件,多对多标记引用Ticket实体的标识符。
12、您需要在Hibernate .cfg.xml配置文件中引用新的Ticket.hbm.xml文件
13、然后还有一个更改要做:您需要向Person类添加一个collection字段,如下图所示。
14、下图显示了一个更新后的测试,确认检索Person对象现在包括一组罚单。