我通常为每个实体bean都有一个值对象。我填充读取数据库层中实体bean的值对象,并将值对象发送到业务层和表示层。
目标是在三个层中发送值对象。
我的问题有两个:(1)每次更改实体bean时都必须维护值对象,(2)如果实体bean有其他相关的实体bean,我必须将它们全部读入值对象 - 因此不利用延迟加载。
如果我使用实体bean本身作为值对象怎么办?我不需要保持字段两次,我不需要填充任何值对象,并将充分利用延迟加载。我的问题是我会将一个实体bean发送到表示层,这似乎不对。
最佳做法和最佳方式是什么?
答案 0 :(得分:0)
这对我有用:我将EntityManager注入Stateless / Statefull会话bean,根据需要延迟加载值对象,从实体bean获取信息。然后将值对象传递给表示层。
答案 1 :(得分:0)
我想到了同样的事情。从会话bean直接将实体bean发送到表示层。 然而,这似乎不是正确的方法,因为一旦实体bean被序列化,它的延迟加载属性将是不可访问的。因此,每次运输实体bean时,必须确保在将其返回到表示层(运输前)之前获取延迟加载的属性。