使用hibernate和oracle时某字段比如id要自增,在配置文件中怎么设置?

在oracle中使用触发器bbb和序列aaa已经把id设置成自增了。测试了下,没问题。现在的问题是在xxx.hbm.xml的文件中关于id的那块怎么设置?补充下:本来这个... 在oracle中使用触发器bbb和序列aaa已经把id设置成自增了。测试了下,没问题。
现在的问题是在xxx.hbm.xml的文件中关于id的那块怎么设置?

补充下:本来这个例子程序是连接sql server 2000的我把它改成了oracle的,现在登陆没问题,就是插入有问题,我一插,在tomcat中就提示“SQL 命令未正确结束”,我是个新手,我是怀疑sql语句的问题,可我找不到具体的语句,找到了歌getHibernateTemplate().save(object);,我估计这就是最低层的语句了。所以我只能怀疑是id自增的问题。

原始id那块的代码如下(那是连接sql server 2000的):

<hibernate-mapping>
<class name="com.wy.form.DepartmentForm" table="tb_department">
<id name="id" type="java.lang.String">
<column name="id" />
<generator class="native"/>
</id>
。。。。。。。。

看看怎么去改一下。

我是新手,能力太弱,麻烦大家了!!!!!请给个具体代码。若是我提供的信息太少,请给我发消息。
展开
 我来答
小楠b2
2009-10-07 · TA获得超过104个赞
知道答主
回答量:41
采纳率:0%
帮助的人:0
展开全部
<id name="id" type="java.lang.String">
<column name="id" />
<generator class="native"/>
</id>

把 <generator class="native"/> 改为 <generator class="increment"/> 试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
asowychun
2009-10-06 · TA获得超过207个赞
知道小有建树答主
回答量:785
采纳率:0%
帮助的人:321万
展开全部
不要把ID设为主键,插入时用HQL实现,不要用getHibernateTemplate().save(object)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
咖悟怀8558
2009-10-07 · TA获得超过277个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:187万
展开全部
因为hibernate的主键生成机制和数据库的触发器操作相同目标产生的错误

所以,
先删除触发器,修改主键的类型为int

<id name="id" type="java.lang.String">
<column name="id" />
<generator class="native"/>
</id>
修改为:
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="sequence"/>
</id>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
91矬人
2009-10-06 · TA获得超过240个赞
知道答主
回答量:105
采纳率:0%
帮助的人:0
展开全部
你可以先设置好 数据库里的关系 然后再在 程序里面 反映射一下 出来的配置文件都是 已经根据数据库关系设置好的 然后再去掉数据库的关系
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小爬爬001
2009-10-06 · TA获得超过1346个赞
知道小有建树答主
回答量:1200
采纳率:0%
帮助的人:618万
展开全部
<id name="id" type="java.lang.String">
<column name="id" />
<generator class="native"/>
</id>
去掉type
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式