快速业务通道

SpringSide开发实战(四):打通数据持久层的任督二脉 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
,可以在调用remove方法的时候将 isdeleted列设置为"-1";

3、创建数据表的时候,所有的列名都是用的小写字母,因此有的列映射需要明确指定, 如@Column(name = "logintime",insertable=false);

4、对于在创建数据表的时候定义了默认值的列,如regtime、regtime、logintime、 isdeleted,在向数据库中添加数据的时候,可以不在insert语句中指定这些列,而让它们 使用默认值,因此,需要告诉Hibernate在生成insert语句的时候不要包含这些列,可以使 用insertable=false语句,如@Column(name = "regtime",insertable=false);

5、指定时间精度,使用@Temporal(TemporalType.TIMESTAMP);

6、指定users表通过roleid和roles表进行多对一映射,使用@ManyToOne和@JoinColumn (name="roleid")

Role.java则比较简单,如下:

package com.xkland.domain; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name = " roles " ) public  class Role implements Serializable  {   private Integer id;   private String name;   private String privilegesFlag; @Id @GeneratedValue(strategy = GenerationType.AUTO)   public Integer getId()  {   return id; }   public  void setId(Integer id)  {   this .id = id; }   public String getName()  {   return name; }   public  void setName(String name)  {   this .name = name; }   public String getPrivilegesFlag()  {   return privilegesFlag; }   public  void setPrivilegesFlag(String privilegesFlag)  {   this .privilegesFlag = privilegesFlag; } }

SpringSide开发实战(四):打通数据持久层的任督二脉(5)

时间:2011-05-07 blogjava 海边沫沫

下一步再来看看users和groups之间的映射关系,不难想象,当载入一个用户的资料时, 往往需要知道他加入了哪些群,而载入一个群的资料时,往往需要知道它有哪些用户,因此 ,他们之间是一个双向的关系,同时,载入一个群的资料时,还需要知道它的管理员是谁, 因此又同时存在一个单向的多对一关系。在多对多关系中,设定User为主控方,所以需要在 User.java中添加如下代码?

private List < Group > groups; @ManyToMany(targetEntity = User. class , cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable(name = " users_groups " , joinColumns = {@JoinColumn(name = " userid " )} , inverseJoinColumns = {@JoinColumn(name = " groupid " )} ) public List < Group > getGroups()  {   return groups; }   public  void setGroups(List < Group > groups)  {   this .groups = groups; }

而整个Group.java的代码如下:

package com.xkland.domain; import java.io.Serializable; import java.util.Date; import java.util.List; import org.springside.core.dao.extend.Undeletable; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; import javax.persistence. * ; @Entity @Table(name = " groups " ) @Undeletable(status = " isDeleted " ) public  class Group implements Serializable  {    private Integer id;  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号