读书人

hibernate id有关问题

发布时间: 2013-01-23 10:44:49 作者: rapoo

hibernate id问题

如何能够实现,hibernate 配置文件中的主键,默认保存的时候是自动增长的,如果赋值,则保存的时候为所赋的值?

如何配置和mysql数据库中的主键如何定义?

这里如何配置
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator alt="hibernate id有关问题" />
[解决办法]


[解决办法]
按你需求,数据库已经有了一个id为5的记录了,你又手动插入一个id为5的数据,报错怎么办?
[解决办法]
引用:
把 class="assigned"改成class=“native”就是主键自动自动增长 mysql id设置成auto_increment就ok了!

+1
[解决办法]
引用:
引用:引用:发出的sql中没有id字段

你都告诉Hibernate了,由数据库去自增,还要个屁ID字段,它没你那么傻。

得支持手动ID赋值啊,不发出ID,怎么支持手动ID赋值啊

我的意思是如果系统没有指定ID字段,或者ID地段为空,则按照mysql的自增,实现插入,如果指定了ID……
那楼主就要重新定义编号字段来满足需求了
[解决办法]
配置文件设置:
<class name="引用" table="对应表名">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native"></generator>
</id>
</class>

MySQL中id定义成自动增长
如:
create table my_table(
user_id int identity
);
[解决办法]
如果mysql中id已经设置为自动增长了,再手动赋值给id是会报错的,要么手动赋值,要么自动增长,对于主键ID只能二选一,如果需要楼主那么需求的话,不妨在在设计表时多添加一个字段,
--表--
id(主键,自增),idCopy(类型和主键一样),其他字段
1 1 。。。
2 2 。。。

如果需要自动赋值的时候就让idCopy的取值和id一样,最麻烦不过在添加一条记录后再发送一条update语句
如果需要手动赋值的时候,主键照样自动增长,ipCopy随你怎么赋值
如果如果表已经设计好了,不能改了,又希望实现这样的需求,同求大神指点~~
[解决办法]
可能自增,可能手动复制,程序没你那么聪明。而且,你手动赋值的id有可能因为存在相同的id,而报错。

做为主键,没什么业务含义,没必要设计这么复杂。

读书人网 >J2EE开发

热点推荐