父类:Stuff.java
子类:Skill.java和Sell.java
1、先把主表、子表建好
主表Stuff(ID为主键)
子表skills
子表sells
2、编写实体类(注解的方式)
父类Stuff.java
@Entity
@Table(name="STUFF"
,schema="TEST"
)
@Inheritance(strategy=InheritanceType.JOINED)
Skill.java类
package com.lwx.annotation.entity;
// default package
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
@Entity
@Table(name = "SKILLS", schema = "TEST")
@PrimaryKeyJoinColumn(name="SKILL_ID")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)public class Skill extends Stuff {
// Fields
private String skill_name;
// Constructors
@Column(name = "SKILLS_NAME", length = 100)
public String getSkill_name() {
return skill_name;
}
public void setSkill_name(String skillName)
{
skill_name = skillName;
}
public Skill() {
}
}
sell.java类
package com.lwx.annotation.entity;
// default package
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.SEQUENCE;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
@Entity
@Table(name = "SELLS", schema = "TEST")
@PrimaryKeyJoinColumn(name="SELL_ID")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)public class Sell extends Stuff {
// Fields
private String sell_name;
// Constructors
@Column(name = "SELLS_NAME", length = 100)
public String getSell_name() {
return sell_name;
}
public void setSell_name(String sellName)
{
sell_name = sellName;
}
public Sell() {
}
}
test.java类
public class test {
public static void
main(String[] args) {
Configuration
cfg=new AnnotationConfiguration().configure();
SessionFactory
sf=cfg.buildSessionFactory();
Session
session=sf.openSession();
// Transaction
tx=session.beginTransaction();
//数据库操作
try
{
Stuff
stuff=(Stuff)session.get(Stuff.class, 21);
System.out.println(stuff.getClass().getName());
// tx.commit();
}
catch (Exception e) {
e.printStackTrace();
//tx.rollback();
}
session.close();
sf.close();
}
}