我正在处理的项目遇到问题。我需要创建一个映射器,将实体对象转换为 VO(值对象)形式,我需要这样做来限制持久层和业务层之间的依赖关系,但我有一些无法解决的循环依赖关系,看这个例子:
我想在我的业务层中使用 Competence 对象,因此我使用映射器将实体转换为我的层可用的 VO。
class Competence {
private Domain dom;
}
class Domain {
private List<Competence> lComp;
}
但是当我转换一个能力对象时,我也需要转换一个域,当我转换一个域时,我需要转换能力列表等等......而且我真的不想转换我的数据库的一半:/
我正在考虑转换一半的对象或避免某些对象来停止循环,但这很危险,而且这并不是真正解决我的问题的解决方案:/
你有办法解决这个问题吗?
提前致谢! :)
最佳答案
处理此类问题的一种标准机制是重新编码为:
class Competence {
}
class Domain {
}
class CompetenceDomain {
Competence competence;
Domain domain;
}
Map<Domain,List<Competence>> domainsWithCompetence = ...;
Map<Competence,Domain> competencesInDomain = ...;
这将对象的关系从对象本身中分离出来,分解为一个单独的机制。
关于java - 创建具有循环依赖关系的实体映射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15024403/