【发布时间】:2011-06-23 16:54:03
【问题描述】:
在对我和我的 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
【问题讨论】:
-
Java 人群正在死去?到目前为止只有 6 次观看。 :(
-
@pavanlimo:提示:声称某些(广泛使用的)库或其功能之一只是“不起作用”不太可能导致许多观点(或答案,就此而言)。询问为什么它对您不起作用可能会更受欢迎。
-
因为问题已被证明是错误的(正如您在下面发布的那样)。人们现在试图解决你的(不存在的)问题只会浪费他们的时间。
-
我认为他们(人们)会像我一样尝试用谷歌搜索,只是意识到问题可能出在他们的 IDE 上(当然是在访问此页面之后)。我认为我们在这里很严格:)。但是,如果你们所有人 (5) 都认为这个问题是“模棱两可的”,那么请继续并关闭它。
-
@pavanlimo:请不要理解这是对你的攻击。这个问题是精心制定和提出的。只是问题中的信息与最终解决方案无关(确保 Tomcat 使用最新版本的源代码)。因此,它具有误导性,在目前的讨论中无法回答。