我有两个表 a b 表,他们的字段是一样的,我在hibernate 中定义了一个父类 M ,并在 M.hbm.xml 中定义了a和b表中共有字段信息,并在M中申明了主键id,然后还 用union-subclass 申明了 A 和 B 两个子类,他们的所有属性均从父类继承所得,主键也是,M 中主键的生成方式为 increment ,我能保存数据到A 表和 B 表中,但是有个问题,A 和 B 表中的主键用的是同一个生成器,就是说 当往A 中插入 一条记录是,id为 1,然后再往B 中插入一条记录是,id 就是2 了,而不是从1开始。如何让它们各自增长自己的,如何解决,请高手帮忙,谢谢,方便留个QQ吧,谢谢
解决方案 »
- struts2的问题。求帮忙解答!
- iframe 刷新求助
- 关于MyEclips6.5 导入别人的工程名,附加了别人的数据库(采用的是SQL SERVER 2000),如何修改连接数据库的相关配置才能使程序运行成功
- Exception starting filter encodingFilter这个错误怎样解决啊?
- 求:每分钟调用 native的方法
- 初学Struts2最简单的也过不去了
- 如何控制下拉列表的显示内容?
- XML 文件如何在Tomcat 服务器与VC编写的客户端间通过HTTP协议传递
- 有关Soap传送\接收一个Soap消息的问题:在客户端如何接收服务器响应的Soap消息?
- weblogic安装后,怎么找不到weblogic_sp.jar文件?
- Hibernate 问题
- hibernate的HQL语言错误
两种方式可以解决:
1.修改hubernate配置,让两个表ID序列各顾各的
2.自动增长ID在数据库里做,程序上就不用管它了
针对这种情况。LZ可以用每个子类一张表,用标示字段去辨识
就是那个subclass字段嵌套join的方法
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.test.hibernate.Animal" table="t_animal">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="sex"/>
<joined-subclass name="com.test.hibernate.Pig" table="t_pig">
<key column="id"/>
<property name="weight"/>
</joined-subclass>
<joined-subclass name="com.test.hibernate.Bird" table="t_bird">
<key column="id"/>
<property name="height"/>
</joined-subclass>
</class>
</hibernate-mapping>
其中:public class Animal
{
private Integer id;
private String name;
private boolean sex;
相应的getter和setter方法...
}
public class Pig extends Animal
{
private double weight;
相应的getter和setter方法... }
public class Bird extends Animal
{
private double height;
相应的getter和setter方法... }