国家电力项目-第五天5domain_第1页
国家电力项目-第五天5domain_第2页
国家电力项目-第五天5domain_第3页
国家电力项目-第五天5domain_第4页
国家电力项目-第五天5domain_第5页
已阅读5页,还剩1页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、相册分类(AlbumCategory)相册分类的模型跟日志分类的非常相似,也是一个树状的分类模型,代码如下所示:FormPO(name = 相册分类, disInject = id,children,albums) Entitypublic class AlbumCategory IdGeneratedValue(strategy = GenerationType.TABLE)privaong id;Field(name = 相册分类名称, validator = Validator(namestring, required = true)=Column(lengthprivate Strin

2、g= 200)name;Column(lengthprivate String= 1000)ro;POLoad(name=parentId) ManyToOneprivate AlbumCategory parent;OneToMany(mappedBy = parent)privaist children = newjava.util.ArrayList();OneToMany(mappedBy = category)priva publicist albums = new java.util.ArrayList();AlbumCategory()publicAlbumCategory(Lo

3、ng id,String name,Stringro)this.id=id;=name;this.ro=ro;/getter 及 setter 方法在模型中,同样使用 parent 及 children 来表示这个树状模型,并使用 JPA标注他们为双向关联,另外分类里面包含一个类型为 List的 albums 属性,该属性表示分类下的,一个分类下面包含多个,所以使用OneToMany 标注,并且与 Album 中的category 属性双向关联。相册(Album)Album 表示相册,也就是用户上传的Entitypublic class Album Id,这个模型跟日志模型非

4、常相似,其代码如下 :GeneratedValue(strategy = GenerationType.TABLE)privaong id;Field(name=标题 ,validator=Validator(name=string,value=min:2;max:100,required=t rue)private String title;Column(length=1000)private private private privatePOLoadStringro; String path;Date inputTime=new Date();eger readTimes=0;ManyTo

5、Oneprivate AlbumCategory category; OneToMany(mappedBy=album)privaist comments = newnewment();java.util.ArrayList/getter 及 setter 方法Album 中包含一个 category 属性,表示该所属的分类,使用ManyToOne 进行标注 ;另外包含一个类型为 List的 comments 属性,用来表示该的所有评论,ment 领由于一张有多个评论,所以使用OneToMany 进行标注,并且该属性与域模型中的 album 属性双向关联。评论(Comments)评论是指用户在

6、查看日志或时,的评论信息,包含文章评论及评论两大类。通过OO 方法对评论进行抽象,发现不管是文章评论也好,还是评论,他们的领域都是评论,因此他们有很多共同的属性。暂时不要去考虑数据库,而重点考虑了模型,来看评论涉及到领域模型。评论基类(Comment)不管是日志评论还是评论,他们都属于评论,因此Comment 的代码如下所示:设计了一个评论基类,FormPO(name = 评论, inject = content,inputTime,ip,name,Entity,url)Inheritantrategy = InheritanceType.JOINED)public abstract clas

7、s Comment IdGeneratedValue(strategy = GenerationType.TABLE)privaLobong id;Field(name = 内容) private String content; ManyToOneField(name = 用户)private User user;Field(generprivate Date Field(gener= true)inputTime = newneDwate();= true)private String ip;Field(name = 状态)privateeger sus;/getter 及setter 方法

8、这个类包含了所有评论的共性信息,包含评论的内容、评论人、录入时间、ip 地址等等,由于是要持久化的实体对象,所以包含一个id 属性并用Id 进行标注;一个用户可以发多个评论,因此评论对于用户是多对一,所在user 属性上使用ManyToOne。由于评论必须要跟日志Topic 或Album 关联才有意义,所以这个 Comment 类是一个抽象类,是不能实例化的,该实体使用的继承面使用了abstract 关键字。另外Inheritance 这个,用来批明策略,这里使用的是 InheritanceType.JOINED,表示子类使用的是连接表方式,也就是公共的属性会在 Comment 表中,而各子类

9、特有的属性会在相应的表中。这种方式的继承策略对于抽象查询非常方便可以在应用中轻松查询出系统中的所有评论,不管他是日志评论还是评论。日志评论(ment)日志评论是指登录用户在查看日志的时候FormPO(name=文章评论,inject=topic) Entity的评论,其领域模型代码如下所示:public classment extends Comment POLoad(name=topicId)ManyToOneprivate Topic topic;public Topic getTopic() return topic;public void setTopic(Topic topic) t

10、his.topic = topic;可以看到,该类直接继承 Comment 类,另外增加了一个类型为 Topic 的 topic 属性 ,并使用ManyToOneManyToOne。来标注 Comment 与 Topic 的关系,多个评论对应一篇文章,所以是相册评论(ment)的时候的评论信息,该评论与Album 领域模型相册评论是指登录用户在查看关联,其代码如下所示:FormPO(name=相册评论,inject=album)Entitypublic classment extends Comment POLoad(name=albumId) ManyToOneprivate Album a

11、lbum;public Album getAlbum() return album;public void setAlbum(Album album) this.album = album;ment 非常类似,该类也是继承Comment,增加了一个类型为 Album 的album与属性,表示该评论属性哪一张。由于是多个评论对应一张,所以使用ManyToOne来进行标注,其它没什么特别的。友情连接(Link)友情连接是一个非常简单的域模型,仅仅包含标题、连接url、简介等,其内容如下所示:FormPO(name = Entity, disInject = id)public class Link

12、 IdGeneratedValue(strategy = GenerationType.TABLE)privaong id;Field(name = 标题) private String title; Field(name = URL) private String url; Field(name = RSS)private String rss;Field(name = 简介)private String/getter 及setter 方法ro;由于是一个需要持久化的实体,所以使用Entity进行标注,并且包含一个由Id标注的id 属性,id 值的生成策略使用 GenerationType.

13、TABLE。用户(User)用户模型也比较简单,就是简单的用户名、邮件等,代码如下所示:= 用户, disInject =ments,sFormPO(name id,lastLog Entity public claIdus)ser GeneratedValue(strategy = GenerationType.TABLE)privaong id;Field(name=用户名 ,validator=Validator(name=string,value=min:2;max:36,required=tr ue)private String name;Field(name =)private S

14、tring password;Field(name =电子邮箱)private String;备注)Field(name =private String remark;Field(name =个人)private String pic;Field(generprivate Da Field(gener= false) astLogime;= false)privateeger logimes = 0;Field(name = 状态)privateeger sus;User 同样是一个由Entity User 的具体属性,其中lastLog录用户登录的次数。标注的实体,包含一个由Id 标注的主键

15、id,另外就是ime 用来上一次用户登录的时间,logimes 用来记当然,如果你愿意,你还可以对该模型进行扩展,让他包含类似下面的属性:privaist comments;可以得到用户所的所有评论;这里出于性能考虑,没有进行这样的。领域模型完成后要做的事情领域模型设计完成后,作为开发的下一步,应该就是定义系统中数据层、业务逻辑层的接口了,接口完成后就是写具体的实现代码。然而对于本示例来说,由于是使用EJS 构架开发,所以不用那么费劲,直接几个命令哗啦啦几下就把数据层的接口,业务接口、实现代码及相关的spring 文件几下生成了。生成令如下:easyjweb crud com.easyjf.simp easyjweb crud com.easyjf.simp.log.log.Blog.Album这种方法能大大提供开发效率,也不会出一些其妙的错

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论