public class EntParent{
@OneToMany
List<Ent1> manyEnt1;
}
public class Ent1 {
Field1
Field2
@ManyToOne
EntParent dad;
getField1
setField1
getField2
setField2
getDad
setDad
}
public class Ent1ManagerEJB{
}
在这种情况下谁(Ent1或Ent1ManagerEJB或EntParent)应该有方法执行以下
1)操纵Ent1
中的字段2)用一些逻辑
获取Ent1的字段3)如果EntParent和映射不存在,取决于某些处理Ent1中字段值的逻辑,获取其他实体
4)如果Ent1在@OneToMany中与其他实体eg EntParent contains Ent1 in array
如果可能的话,还会指出一些教我这些模式/问题的资源。
答案 0 :(得分:0)
域对象代表目标域中的重要概念,因此通常必须是持久的。 Java Persistence API(JPA)对于将富域对象映射到关系表非常灵活。您需要实现的逻辑越复杂,就越容易维护和开发面向对象的持久性。
使用贫血结构实现的复杂逻辑的真正问题是服务层中的类型区别。可能需要大量的if语句来区分实体类型。每次引入新子类,甚至更改现有业务逻辑,都需要您查找,增强和测试这些类型检查。
Admam Bien
你可以利用Adam Bien在他的文章中谈到的“领域驱动设计”这个概念:
http://www.javaworld.com/javaworld/jw-05-2009/jw-05-domain-driven-design.html?page=2?