浏览 510 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2008-05-05 关键字: hibernate
业务描述:
单据自动编码,编码格式为“L+年度+4位自编码”,编码每次自动增加一位,项目用的是spring+hibernate,请假高人怎么解决这个问题,我个人是想到了用hibernate的乐观锁机制,但是项目中没有hibernate的配置文件,都是spring封装了的,下面发一个bean
package com.gkhb.mis.safety.bean;
import java.util.Date;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.Proxy;
import com.gkhb.mis.core.bean.BaseEntity;
import com.gkhb.mis.system.bean.SysGroup;
@Entity
@Table(name = "SAFETY_DEFEND_LC")
@Proxy(lazy = false)
@SequenceGenerator(name = "SEQ_STORE", sequenceName = "SEQ_ID_SAFETY_DEFEND_LC", allocationSize = 1)
public class SafetyDefendLc extends BaseEntity<SafetyDefendLc> {
private static final long serialVersionUID = 1L;
@ManyToOne(cascade = { CascadeType.MERGE })
@JoinColumn(name = "SYS_GROUP_ID")
private SysGroup sysGroup;
@Column(name = "SYS_GROUP_CODE")
private String groupCode;
private String flowstate;
private Long piid;
private String code;
private String applyCompany;
private String applyClass;
private String year;
private String type;
private String finishDate;
private String content;
private Double cost;
private String checkIdea;
private String checker;
private Date checkDate;
private String executeFact;
private Double actualCost;
private Date executeFinishDate;
private String remark;
public Double getActualCost() {
return actualCost;
}
public void setActualCost(Double actualCost) {
this.actualCost = actualCost;
}
public String getApplyClass() {
return applyClass;
}
public void setApplyClass(String applyClass) {
this.applyClass = applyClass;
}
public String getApplyCompany() {
return applyCompany;
}
public void setApplyCompany(String applyCompany) {
this.applyCompany = applyCompany;
}
public Date getCheckDate() {
return checkDate;
}
public void setCheckDate(Date checkDate) {
this.checkDate = checkDate;
}
public String getChecker() {
return checker;
}
public void setChecker(String checker) {
this.checker = checker;
}
public String getCheckIdea() {
return checkIdea;
}
public void setCheckIdea(String checkIdea) {
this.checkIdea = checkIdea;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Double getCost() {
return cost;
}
public void setCost(Double cost) {
this.cost = cost;
}
public String getExecuteFact() {
return executeFact;
}
public void setExecuteFact(String executeFact) {
this.executeFact = executeFact;
}
public Date getExecuteFinishDate() {
return executeFinishDate;
}
public void setExecuteFinishDate(Date executeFinishDate) {
this.executeFinishDate = executeFinishDate;
}
public String getFinishDate() {
return finishDate;
}
public void setFinishDate(String finishDate) {
this.finishDate = finishDate;
}
public String getFlowstate() {
return flowstate;
}
public void setFlowstate(String flowstate) {
this.flowstate = flowstate;
}
public String getGroupCode() {
return groupCode;
}
public void setGroupCode(String groupCode) {
this.groupCode = groupCode;
}
public Long getPiid() {
return piid;
}
public void setPiid(Long piid) {
this.piid = piid;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public SysGroup getSysGroup() {
return sysGroup;
}
public void setSysGroup(SysGroup sysGroup) {
this.sysGroup = sysGroup;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
}
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-05-05
没有实体映射文件
|
|
| 返回顶楼 | |
|
时间:2008-05-05
不明白为什么要用到hibernate的乐观锁
|
|
| 返回顶楼 | |
|
时间:2008-05-08
lZ意思可能是要从一个数据字典表里读取一个数字来动态生成编码,但可能有两个操作同时读到这个数字 这样编码就重复了 有点高低码的味道!
呵呵 没有hibernate的配置文件?? 看你用的好象是annotation吧 可以这样加个 @version private Integer version |
|
| 返回顶楼 | |
|
时间:2008-05-08
而且你可以自己设计一个专门生成编码的单例。自己设置这个子编码。不过有个问题,总共4位,一年最多不到1W个记录?太少了吧?有可能重复吗?平均一天连3个都没有。
|
|
| 返回顶楼 | |
|
时间:2008-05-08
确定你的序列样式规则:
key+value key为一定格式的编码,value(n为number序列号), key下的value不能有重复value. value 可以直接从工具类中取得最大, 然后取余 最后规则为 key + (maxnumber%n) |
|
| 返回顶楼 | |






