您的位置:首页 > 编程语言 > Java开发

hibernate注解bean的标准用法

2017-01-04 00:00 267 查看
摘要: 映射主键Id,映射自增,映射表,忽略单个属性等, 全注解方式解释hibernatebean配置;

日常springMVC项目中使用hibernateBean还是很便捷,不推荐查询,但保存单个对象还是很方便的; so,项目内集成hibernates还是可推荐的; 但也别太重, 比如我们集成.xml映射方式,而是简单的注解,然后通过this.getHibernateTemplate().getSessionFactory().getCurrentSession() , session工厂来更新or保存对象

好了,不多少举个栗子;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.springframework.format.annotation.DateTimeFormat;

@Entity
@Table(name="demo_table")
public class DemoTable  implements java.io.Serializable{
@Transient
private static final long serialVersionUID = -2593493866782904614L;

private long id;
private String name;
private int age;
@DateTimeFormat(pattern="yyyy-MM-dd")
private Date createDate;
private String email;
private String phone;
private String url;
private String xb;

public 	DemoTable(){

}

@Id
@GeneratedValue
@Column(name = "id", unique = true, nullable = false)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}

@Column(name="name")
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Column(name="age")
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}
@Column(name="create_date")
public Date getCreateDate() {
return createDate;
}

public void setCreateDate(Date createDate) {
this.createDate = createDate;
}

// 忽略某个字段
@Transient
public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}
@Column(name="phone")
public String getPhone() {
return phone;
}

public void setPhone(String phone) {
this.phone = phone;
}
@Column(name="url")
public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}
@Column(name="xb")
public String getXb() {
return xb;
}

public void setXb(String xb) {
this.xb = xb;
}

}


其中:

@Table(name="demo_table") //映射类名和表名对应

@Column(name="id") //映射属性名和字段名

@Column(length=50) //限制字符串长度 (这里没有写,如果严格限制可以写上)

@Temporal(TemporalType.DATE) //限制时间格式:只记录日期不记录时间。默认是时间日期都记录

@Transient //隐藏属性,不会被映射到表中 ,忽略单个属性

@Enumerated(EnumType.STRING) //把枚举里的sring存储进去

@Enumerated(EnumType.ORDINAL) //把存在的顺序编号int存储进去

@GeneratedValue // 自增主键标识,可以定义该标识符的生成策略 (我们默认就好)

好了,今天就介绍到这里了,要想深入的话,可以@题主,或者回复本贴;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息