2011-03-08 166 views
1

我有一个有状态的会话bean和一个CMP实体bean。实体bean是否代表数据库中的表?会话bean和实体bean?

每个客户端都有自己的有状态会话bean,每个有状态会话bean都有它自己的实体bean?
如果我想将有状态会话bean连接到实体bean,或者我应该说我想为该有状态bean创建一个新的实体bean实例,那我该怎么办?
当我有实体bean时,我可以使用它来访问数据库,对吧?如果我想在会话bean中向数据库写入一些数据,那么应该如何处理实体bean?

+0

答:http://stackoverflow.com/a/13501659/1697099 – Premraj 2015-07-02 05:04:53

回答

3

对于EJB 3.0,实体bean仅仅是POJO(普通的旧Java对象),其中添加了ORM(对象关系映射)注释。它们是通过从数据库中读取实例化的最常用的顶层代表对象,它们也需要在稍后阶段写回数据库。

  1. 要回答你的问题的一部分,是的,你的实体bean的类将确实代表数据库中的表。实体bean的一个实例表示该表中的一行。该类的ORM注释的属性表示该表的列标题。

  2. 有状态会话bean可用于存储实体bean作为其状态的一部分,但不一定 - 可以存储任何其他对象。您可以选择适当的方式。

  3. 是的,你将能够将你的实体bean写入数据库。为了实现这一点,您需要设置和配置一个持久层 - 您在设置Java EE服务器时应该已经完成​​了这一步 - 然后您可以使用JDBC API来持久化您的实体bean。

您可能想了解持久性,ORM和JDBC;如何在Java EE环境中使用它们 - 当你这样做时,你的许多问题都会得到解答。

HTH

+0

我不明白这一点,如果会话bean并不存储实体bean,所以在实体bean将被保存? – Xitrum 2011-03-08 04:08:12

+0

@ user552279:您错误地理解了我的意思,会话bean可以存储任何您感觉喜欢的对象,并且这包括实体bean,因此“不一定”。实体bean通常在访问数据库时使用,并使用持久性存储它们。 – bguiz 2011-03-10 02:42:07