Hibernate的生成器类没有真正起作用?

时间:2011-05-12 04:02:07

标签: java hibernate

在我和我的Eclipse受到挫折之后,问这个问题。希望在这里找到一些喘息的机会。

我正在尝试通过Hibernate 3.0将pojo对象保存到MySQL数据库中。基本上我的要求是:我需要在保存之前为对象分配id,而不是让Hibernate为我做。

为此,我查阅了文档,发现<generator class="assigned"/>完全适合我的账单。因此,我使用以下.hbm.xml更新了id文件:

<id name="id" type="int">
    <column name="ID" />
    <generator class="assigned" />
</id>

我的pojo将.hbm.xml文件与T匹配。

我正在设置所有参数,包括我的pojo的ID并调用Hibernate的saveOrUpdate(object)方法。

如果有任何帮助,我的数据库表的ID列已禁用“auto-inc”。

令人难以置信的是,当我查看数据库表的内容时,插入了一行Hibernate自己的ID,而不是我设置的内容。

怎么可能?还有其他影响ID的事吗?我错过了什么吗?有什么作用?

我的hibernate.properties如下所示(如果有任何帮助的话):

hibernate.connection.driver_class =com.mysql.jdbc.Driver
hibernate.dialect =org.hibernate.dialect.MySQLDialect
hibernate.connection.url =jdbc:mysql://localhost/dbdbdbdbdb
hibernate.connection.username=root
hibernate.connection.password=password
hibernate.connection.pool_size=10
jdbc.batch_size=30
hibernate.show_sql=true
hibernate.current_session_context_class=true
hibernate.hbm2ddl.auto=validate
hibernate.cglib.use_reflection_optimizer=false
hibernate.generate_statistics=true
hibernate.cache.use_query_cache=true
hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.EhCacheRegionFactory

2 个答案:

答案 0 :(得分:1)

好吧,骗局报警! Eclipse - Tomcat整合确实存在问题。在Tomcat文件生效之前,我必须清理hbm的目录并重新发布。

提示:如果您在Eclipse中运行ant,请务必不时地刷新Eclipse工作区。以艰难的方式学习一些东西。

答案 1 :(得分:0)

您可以编写自定义序列生成器类来返回适合您要求的ID。有关详细信息,请访问:http://danu-javastuff.blogspot.com/2009/01/custom-id-generator-class-for-hibernate.html

相关问题