冬眠的发电机类真的不起作用?



在对我和我的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。

怎么可能?还有其他影响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

好吧,恶作剧警报!这确实是Eclipse的问题 - Tomcat集成。我必须清理Tomcat 的目录并重新发布,然后hbm文件才能生效。

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

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

最新更新