请教一下,我在使用Hibernate时,主键生成策略使用了Increment..请问这个策略的初始值是否可以设定?
比如:不让ID从1开始自增 设定第一条记录的ID值为10000, 然后第2条是10001... 依次自增?
比如:不让ID从1开始自增 设定第一条记录的ID值为10000, 然后第2条是10001... 依次自增?
解决方案 »
- 新手学spring和hibernate,该怎么入手呢?
- 大家做Java的excel中vbscript用的多么?
- 大家能不能幫我看一下,spring+hibernate連sql server老是報這個錯
- log4j:ERROR setFile(null,true) call failed.
- 关于Struts和Spring整合的问题。
- axis部署时,报错,大虾们帮忙看看
- jsp无法使用bean的问题 等到解决问题为止!!!!!!!!!!!!!!!!
- 用weblogic + J2EE的数据库连接问题,高手帮忙
- jbuilder8+struts 配置问题!
- 我启动j2ee时,出现下面错误,请问是什么错误?
- 怎样解决Spring事务与SQL Server 2005触发程序的问题
- java-session问题:同一个回话进入,能否清楚原来的session的值
请指教触发器是??
我的思路也是写段代码做个判定如果数据库里没有记录的话 那么插入一条记录 然后再把这条记录取出来UPDATE一下 把ID+10000...但是我想知道Increment这个策略里有没有属性可以直接设定初始值...如果有的话就更方便了而且又学到一点东西
你的那种判定会产生并发问题,所以治本的方法还是自己写个hibernate的主键生成器
不会....Hibernate源代码没研究过呀.你可以教我吗?
PersistentIdentifierGenerator, Configurable {
private String entityName;
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
entityName = params.getProperty(ENTITY_NAME);
if (entityName==null) {
throw new MappingException("no entity name");
}
super.configure(type, params, dialect);
}
public Serializable generate(SessionImplementor session, Object obj)
throws HibernateException {
Serializable id = session.getEntityPersister( entityName, obj )
.getIdentifier( obj, session.getEntityMode() );
if (id==null) {
id = super.generate(session, obj);
}
return id;
}
}
这段代码大概看懂了..我想把整个ID生成流程学习一下.但是我反编译了一下Hibernate源代码,发现里边类N多,我已经迷糊了.有没有好的SSH框架源码学习文档推荐一下,非常感谢