2011-06-05 84 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

相關問題