【问题标题】:How to map a stateful ejb 3.1 session bean using JPA如何使用 JPA 映射有状态的 ejb 3.1 会话 bean
【发布时间】:2011-06-05 10:48:05
【问题描述】:

我对如何使用带有 Hibernate 的 JPA 注释来表示我的数据库有疑问。这是一个非常简单的网络应用,代表一个在线图书馆。

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

  • 整数标识;
  • UserBean userBean;
  • 列出书单;
  • 日期预订日期;
  • 日期保留Exp;

代表这个类的数据库是:

  • int id_book_reservation PK
  • int id_user FK
  • int id_book FK
  • date reservation_date
  • date expire_date

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

我不知道如何映射 bookList 字段。预订和书籍之间的关系是一对多的,但我想知道如何才能知道,例如,什么时候已经预订了一本书,因为我有一个列表而不是简单的书籍对象(在 HQL 中) .

提前致谢! 干杯。

【问题讨论】:

    标签: hibernate jpa annotations ejb-3.1


    【解决方案1】:

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

    祝你好运

    【讨论】:

    • 只是补充一点,除了考虑应该如何分解 Java 实体之外,您还需要考虑您的数据以及它应该如何在数据库中表示。然后映射将在您的 java 模型(JPA 实体)和您的数据库表之间。在 Eclipse 中使用 Dali 等工具可以帮助完成此映射。
    猜你喜欢
    • 2013-04-30
    • 2012-08-17
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多