2011-06-05 135 views
0

我有疑问如何使用JPA批注与休眠表示我的数据库。这是一个代表在线图书馆的非常简单的web应用程序。如何使用JPA映射有状态的ejb 3.1会话bean

我有一个有状态会话bean,允许用户保留书籍。用户最多可以预订2本书。它具有以下字段:

  • Integer id;
  • UserBean userBean;
  • List bookList;
  • 日期reservationDate;
  • Date reservationExp;

代表该类的数据库是:

  • INT id_book_reservation PK
  • INT id_user FK
  • INT id_book FK
  • 日期reservation_date
  • 日期到期日期

这个有状态bean可以用作购物车。因此,它允许用户在那里放置书籍,继续浏览,添加另一本书,然后最终要求预订(例如在电子商务网站上的“购买”行为)。

我无法弄清楚如何映射bookList字段。预订与书籍之间的关系是一对多的,但我想知道如何才能知道,例如,由于我有一个List,而不是简单的书籍对象(在HQL中) 。

在此先感谢! 干杯。

回答

3

我想你是混合了EJB/JPA的2个概念。
一个有状态的会话bean,是一个由容器管理的实体。在这里你可以保持状态一段时间,直到有状态会话bean过期。
您的数据库表应该在实体中表示。 entity是带注释(或xml配置)的POJO。在这些注释中,您可以指定表格特征,主键和外键。
因此,移动将您的表映射到另一个类的字段,然后您可以使用有状态会话bean来保持您的状态。

好运

+0

我想补充,你需要考虑你的数据和它应该如何在数据库中表示,除了考虑您的Java企业应如何被分解。映射将在您的Java模型(JPA实体)和您的数据库表之间进行。在Eclipse中使用Dali这样的工具可以帮助实现这种映射。 – 2011-06-06 14:59:40

相关问题