hibernate 创建数据中一张表的方法
2016-05-01 12:19
393 查看
package com.jeefw.model.sys;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import com.google.common.base.Objects;
import com.jeefw.model.sys.param.DictParameter;
/**
* StockAccount 的实体类
*/
@Entity
@Table(name = "stockaccount")
@Cache(region = "all", usage = CacheConcurrencyStrategy.READ_WRITE)
@JsonIgnoreProperties(value = { "maxResults", "firstResult", "topCount", "sortColumns", "cmd", "queryDynamicConditions", "sortedConditions", "dynamicProperties", "success", "message", "sortColumnsString", "flag" })
public class StockAccount extends DictParameter {
// 各个字段的含义请查阅文档的数据库结构部分
private static final long serialVersionUID = -2847988368314689488L;
@Id
@GeneratedValue
@Column(name = "stockAccount_id")
private Long id;
@Column(name = "account", length = 255, nullable = false, unique = true)
private String Account;
@Column(name = "Persion_name", length = 255, nullable = false)
private String persionName;
public StockAccount() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAccount() {
return Account;
}
public void setAccount(String account) {
Account = account;
}
public String getPersionName() {
return persionName;
}
public void setPersionName(String persionName) {
this.persionName = persionName;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public boolean equals(Object obj) {
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final StockAccount other = (StockAccount) obj;
return Objects.equal(this.id, other.id) && Objects.equal(this.persionName, other.persionName)
&& Objects.equal(this.Account, other.Account);
}
public int hashCode() {
return Objects.hashCode(this.id, this.Account, this.persionName);
}
}
在配置好hibernate之后,我们需要添加实体类,并且在数据库中生成对应的表。
上面这个类就是一个实体类,并且使用注解的方式配置出了关系映射模型。因此,也就不需要添加诸如.hbm.xml之类的关系映射文件。
在这个实体类中,我们定义了id,及其他的属性。
然后运行程序,就能在数据库中找到对应的表。
关于date的问题,解决办法如下:
定义date类型的变量
@Column(name = "refresh_time")
@Temporal(TemporalType.TIMESTAMP)
private Date refreshTime;
下面是在date类型的变量中,get方法前添加一个标注
@JsonSerialize(using = DateTimeSerializer.class)
public Date getBuyDate() {
return buyDate;
}
这样就定义了一个在数据库和程序中都能够使用的时间类型。
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import com.google.common.base.Objects;
import com.jeefw.model.sys.param.DictParameter;
/**
* StockAccount 的实体类
*/
@Entity
@Table(name = "stockaccount")
@Cache(region = "all", usage = CacheConcurrencyStrategy.READ_WRITE)
@JsonIgnoreProperties(value = { "maxResults", "firstResult", "topCount", "sortColumns", "cmd", "queryDynamicConditions", "sortedConditions", "dynamicProperties", "success", "message", "sortColumnsString", "flag" })
public class StockAccount extends DictParameter {
// 各个字段的含义请查阅文档的数据库结构部分
private static final long serialVersionUID = -2847988368314689488L;
@Id
@GeneratedValue
@Column(name = "stockAccount_id")
private Long id;
@Column(name = "account", length = 255, nullable = false, unique = true)
private String Account;
@Column(name = "Persion_name", length = 255, nullable = false)
private String persionName;
public StockAccount() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAccount() {
return Account;
}
public void setAccount(String account) {
Account = account;
}
public String getPersionName() {
return persionName;
}
public void setPersionName(String persionName) {
this.persionName = persionName;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public boolean equals(Object obj) {
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
final StockAccount other = (StockAccount) obj;
return Objects.equal(this.id, other.id) && Objects.equal(this.persionName, other.persionName)
&& Objects.equal(this.Account, other.Account);
}
public int hashCode() {
return Objects.hashCode(this.id, this.Account, this.persionName);
}
}
在配置好hibernate之后,我们需要添加实体类,并且在数据库中生成对应的表。
上面这个类就是一个实体类,并且使用注解的方式配置出了关系映射模型。因此,也就不需要添加诸如.hbm.xml之类的关系映射文件。
在这个实体类中,我们定义了id,及其他的属性。
然后运行程序,就能在数据库中找到对应的表。
关于date的问题,解决办法如下:
定义date类型的变量
@Column(name = "refresh_time")
@Temporal(TemporalType.TIMESTAMP)
private Date refreshTime;
下面是在date类型的变量中,get方法前添加一个标注
@JsonSerialize(using = DateTimeSerializer.class)
public Date getBuyDate() {
return buyDate;
}
这样就定义了一个在数据库和程序中都能够使用的时间类型。
相关文章推荐
- Field 'id' doesn't have a default value
- WLAN and WiFI
- hdoj 1078 FatMouse and Cheese 【dp】
- hdoj 5677 ztr loves substring 【Manacher + 多重背包】
- LaTeX关于包缺失的问题
- 一个简单的时间类的定制
- hdoj 5676 ztr loves lucky numbers 【二分】
- hdoj 5675 ztr loves math 【数学】
- hdoj 1025 Constructing Roads In JGShining's Kingdom 【LIS】
- 基础篇_包(package)
- HTML的本地数据库报错
- C#开发的进化史
- std::ref 有什么用
- PowerShell调用WMI
- redis安装
- 20145120 《Java程序设计》第9周学习总结
- Android Studio 2.+使用分享——关于未签名Apk第一次运行黑屏or白屏
- Python lambda表达式
- 2016年4月14日--4月30日(12小时,剩3009小时)
- nginx安装配置