第二,将composite-id导入 class SkillTable中设为主键<o:p></o:p>
<o:p> </o:p>
/**<o:p></o:p>
* @hibernate.id class="com.sunnyever.model.SkillTableKey"<o:p></o:p>
* <o:p></o:p>
*/<o:p></o:p>
<o:p> </o:p>
public SkillTableKey getKey() {<o:p></o:p>
return key;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
下面为class SkillTable:<o:p></o:p>
**<o:p></o:p>
* @struts.form include-all="true" extends="BaseForm"<o:p></o:p>
* @hibernate.class<o:p></o:p>
* table="SKILL_TABLE"<o:p></o:p>
* <o:p></o:p>
*/<o:p></o:p>
<o:p> </o:p>
public class SkillTable extends com.sunnyever.model.BaseObject implements java.io.Serializable {<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
// Fields <o:p></o:p>
private SkillTableKey key;<o:p></o:p>
<o:p></o:p>
private String skill;<o:p></o:p>
private String level1;<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
// Constructors<o:p></o:p>
<o:p> </o:p>
/** default constructor */<o:p></o:p>
public SkillTable() {<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
<o:p></o:p>
/** full constructor */<o:p></o:p>
public SkillTable(SkillTableKey key, String skill, String level1) {<o:p></o:p>
this.key=key;<o:p></o:p>
this.skill = skill;<o:p></o:p>
this.level1 = level1;<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
/**<o:p></o:p>
* @hibernate.id class="com.sunnyever.model.SkillTableKey"<o:p></o:p>
* <o:p></o:p>
*/<o:p></o:p>
<o:p> </o:p>
public SkillTableKey getKey() {<o:p></o:p>
return key;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
public void setKey(SkillTableKey key) {<o:p></o:p>
this.key = key;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
/** <o:p></o:p>
* <o:p></o:p>
* @hibernate.property<o:p></o:p>
* column="SKILL"<o:p></o:p>
* type="java.lang.string"<o:p></o:p>
*/<o:p></o:p>
<o:p> </o:p>
public String getSkill() {<o:p></o:p>
return this.skill;<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
public void setSkill(String skill) {<o:p></o:p>
this.skill = skill;<o:p></o:p>
}<o:p></o:p>
/** <o:p></o:p>
* <o:p></o:p>
* @hibernate.property<o:p></o:p>
* column="LEVEL1"<o:p></o:p>
* type="java.lang.string"<o:p></o:p>
*/<o:p></o:p>
<o:p> </o:p>
public String getLevel1() {<o:p></o:p>
return this.level1;<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
public void setLevel1(String level1) {<o:p></o:p>
this.level1 = level1;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
@Override<o:p></o:p>
public int hashCode() {<o:p></o:p>
final int PRIME = 31;<o:p></o:p>
int result = 1;<o:p></o:p>
result = PRIME * result + ((key == null) ? 0 : key.hashCode());<o:p></o:p>
result = PRIME * result + ((level1 == null) ? 0 : level1.hashCode());<o:p></o:p>
result = PRIME * result + ((skill == null) ? 0 : skill.hashCode());<o:p></o:p>
return result;<o:p></o:p>
}<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
@Override<o:p></o:p>
public