小弟想问下,ORACLE + HIBERNATE,主键想存成“特定字符 + 顺序号”这种形式,例如1011000,其中101是配置文件写死的,1000是顺序递增的,想问下,怎么实现比较好?谢谢。
解决方案 »
- 如何一个web工程中加载另一个工程中spring的配置文件applicationContext.xml
- 用servlet读取数据库图片文件后怎样在jsp中显示出来
- 问个简单的问题
- 已经装了sqlserver sp3,运行一端时间后,出现java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing s
- 奇怪的问题!请大家救命!
- 问个关于socket的问题
- 请问可以将resultset加到session里面吗?
- 搞了两个小时,没有结果烦死了!
- JDom中的编码问题
- 正则表式限制匹配不能上传的文件后缀名
- xfire客户端请求webservice问题
- WebService问题,求大神
可以参考@TableGenerator建一个序列号表,表里对应表中最大的顺序递增值,然后每次执行插入时,重新拼主键id(特定字符 + 最大值+1)
用模糊查找找到当天最大的主键然后转化为Long型的,加1,转化成字符串,作为当前记录的主键。你这个问题也可以查询select max(id) from tableName where id like '101%',然后让结果加1作为当前插入记录的主键。
作为初学者,我只能想到这个方法了,希望能解决楼主的问题。
@Id @GeneratedValue(generator="system-uuid")
@GenericGenerator(name="system-uuid", strategy = "uuid")
public String getId() {@Id @GeneratedValue(generator="hibseq")
@GenericGenerator(name="hibseq", strategy = "seqhilo",
parameters = {
@Parameter(name="max_lo", value = "5"),
@Parameter(name="sequence", value="heybabyhey")
}
)
public Integer getId() {