『提问』联合主键(compsite-id)所引起的问题

05-01-27 Travelsky
A表中first、second 作为主键 同时也是B表的联合主键。原有系统还在使用,不能做修改。所以新建ID列的方法在此不能用。请问如何编写hbm文件

3x

A表 B表

first --------------------------------> first

second----------------------------->second

name item

配置文件:

A.hbm.xml

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > 

<hibernate-mapping package="com.travelsky.poc"> 
<class name="A" table="A"> 
<composite-id > 
<key-property column="FIRST" name="First" type="integer" /> 
<key-property column="SECOND" name="Second" 
type="integer" /> 
</composite-id > 

<property column="NAME" name="Name" type="string" /> 

</class> 
</hibernate-mapping> 
<p>

B.hbm.xml

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > 

<hibernate-mapping package="com.travelsky.poc"> 
<class name="B" table="B"> 
<composite-id > 
<p>[b]此处改如何填写 [/b]
</composite-id > 

<property column="NAME" name="Name" type="string" /> 
</class> 
</hibernate-mapping> 
<p>

SportsBaby1980
2005-01-28 09:58
我这里提出一个方法,可以参考。

Hibernate象EJB一样支持PK Class,

只是支持的实现方式不一致而已。

PK{
  private String first;
  private String second;
}


A impplements Comparable{
  private Pk key;
  /**
   @hibernate.id class="PK"
  */
  public PK getKey(){
   return this.key;
  }

  public int compareTo(Object o){
   比较key和O
  }
}
B也采用同样的方式
 

Travelsky
2005-01-31 12:47
谢谢 通过B采用和A相同的主键类 该问题已经解决 多谢楼上的答复

猜你喜欢