这是我第一次使用 hibernate,所以如果我想寻求简单的建议,请原谅我。
我目前正在使用 xml 映射一个类(无注释),我不这样做我的表上有该 ID,但有人告诉我,我必须使用 Hibernate 来使用 ID,因此,我在表中创建了 SMS_MONITORING_ID 字段,并将其映射如下:
<class name="smsbox.dal.model.SmsMonitoring" table="MST_SMS_MONITORING">
<comment></comment>
<id name="smsMonitoringId" type="long">
<column name="SMS_MONITORING_ID" />
<generator class="native" >
<param name="sequence">ID_SMS_MONITORING</param>
</generator>
</id>
我已经在我的oracle数据库(ID_SMS_MONITORING)上创建了一个序列,并且我根本不希望hibernate处理该id,我什至想避免在我的java代码中引用任何id(当我保存对象)。
我怎样才能实现让hibernate忽略分配id的整个过程的愿望?
P.S 我正在将 id(长)映射到 Oracle“数字”类型,避免可能出现问题的规则是什么(长不适合数字,反之亦然)任何人都可以给我提供一些解释的链接以及映射类型 Hibernate 和 Oracle DB(我自己没有发现任何有趣的东西)。
谢谢
最佳答案
如果您引用 Hibernate 文档:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mapping-declaration-id
您会看到该标签是可选的。不定义它相当于将其设置为“已分配”(换句话说,您的应用程序将处理 id 分配)。
关于java - hibernate避免id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482358/