我们使用Hiberate + Spring + Maven来实现一个大型web应用程序。
应用程序已被划分为多个Maven模块的图,其中一些模块具有持久性。这些模块合并为父web应用程序中的maven依赖项。在其他应用中,有几个模块是独立使用的。
我的结构如下:
核心模块包含核心服务和持久性api。
社交模块它是一个独立的应用程序,有它自己的实体(例如。(评论、民意测验等)服务和持久性api。
social-integration这应该是将社会模块粘合到核心应用程序中,并包含关联实体、持久性、服务和控制器。
webapp --它只是一个war容器,具有共用的春季配置,并且依赖于所有模块。
我尝试使用Hibernate继承来扩展核心类Project以添加所需的关系,但是我没有什么问题,而且我认为这不是正确的实现。
@Entity
@Table(name = "project")
@Inheritance(strategy = InheritanceType.JOINED)
public class Project implements Serializable
{
.....
}
@Entity
@Table(name = "social_project")
@PrimaryKeyJoinColumn(name = "project_id", referencedColumnName = "id")
public class SocialProject extends Project
{
@OneToMany(mappedBy = "project", targetEntity = ProjectComment.class, cascade = CascadeType.ALL)
protected List<Comment> comments = new ArrayList<Comment>(0);
@OneToMany(mappedBy = "project", targetEntity = ProjectQuestion.class, cascade = CascadeType.ALL)
protected List<Question> questions = new ArrayList<Question>(0);
@OneToMany(mappedBy = "project", targetEntity = ProjectEvent.class, cascade = CascadeType.ALL)
protected List<Event> events = new ArrayList<Event>(0);
......
}所以..。我可以在不改变核心应用程序的情况下在这个模块之间创建一个干净的关系吗?
发布于 2014-09-20 21:19:07
您可以使用以下模块更改应用程序的结构:
social-model (or social-schema)
social-dao
social-ws (i.e. web services)
social-runtime (create result jar/war file)模块之间的依赖关系:
dao depends from model module
ws depends from model and dao modules
runtime depends from all modules声明根pom中的所有模块。在构建过程中,Maven将解决依赖关系,并按照正确的顺序执行构建:
root,model,dao,ws,runtime例如,ws模块将重用dao模块中的文件。只需在ws模块的Spring中使用导入指令即可。
https://stackoverflow.com/questions/19563875
复制相似问题