EJB实体可以用作值对象吗?

时间:2015-03-10 03:44:45

标签: java ejb

我通常为每个实体bean都有一个值对象。我填充读取数据库层中实体bean的值对象,并将值对象发送到业务层和表示层。

目标是在三个层中发送值对象。

我的问题有两个:(1)每次更改实体bean时都必须维护值对象,(2)如果实体bean有其他相关的实体bean,我必须将它们全部读入值对象 - 因此不利用延迟加载。

如果我使用实体bean本身作为值对象怎么办?我不需要保持字段两次,我不需要填充任何值对象,并将充分利用延迟加载。我的问题是我会将一个实体bean发送到表示层,这似乎不对。

最佳做法和最佳方式是什么?

2 个答案:

答案 0 :(得分:0)

这对我有用:我将EntityManager注入Stateless / Statefull会话bean,根据需要延迟加载值对象,从实体bean获取信息。然后将值对象传递给表示层。

答案 1 :(得分:0)

我想到了同样的事情。从会话bean直接将实体bean发送到表示层。 然而,这似乎不是正确的方法,因为一旦实体bean被序列化,它的延迟加载属性将是不可访问的。因此,每次运输实体bean时,必须确保在将其返回到表示层(运输前)之前获取延迟加载的属性。