Hibernate one-to-one

Card类

@Entity
@Table(name="t_card")
public class Card {

    **@Id
    @GeneratedValue(generator="fk")//指定生成器的名字
    @GenericGenerator(name="fk",//指定泛型生成器的名字,要和上面指定的生成器的名字相同
    strategy="foreign",//指定泛型生成器的策略为外键策略
    parameters={
            @Parameter(value="citizen",//指定属性值,这个值对象中会自动生成id值,将这个id值作为当前成员变量的id值
                    name="property" //指定属性名,此时的属性名必须为property
                    )
        }
    )**
    private int id;

    private String name;

    **@OneToOne
    @PrimaryKeyJoinColumn**
    private Citizen citizen;



    public Card(String name) {
        super();
        this.name = name;
    }

    public Card() {
        super();
        // TODO Auto-generated constructor stub
    }


    public Citizen getCitizen() {
        return citizen;
    }

    public void setCitizen(Citizen citizen) {
        this.citizen = citizen;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Wife [name=" + name + "]";
    }




}

Citizen 类

@Entity
@Table(name="t_citizen")
public class Citizen extends BaseEntity{

    private String name;

    @OneToOne(mappedBy="citizen")
    private Card card;

    public Card getCard() {
        return card;
    }

    public void setCard(Card card) {
        this.card = card;
    }

    public Citizen(String name) {
        super();
        this.name = name;
    }

    public Citizen() {
        super();
        // TODO Auto-generated constructor stub
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Citizen [name=" + name + "]";
    }

}

测试类

public class HibernateDemo01 {

    public static void main(String[] args) {
        add();

    }



    /**
     * 添加数据
     */
    private static void add() {
        Session session=HibernateUtils.getSession();

        Transaction transaction=null;
        try{
            transaction=session.beginTransaction();

            Card card=new Card("社保卡");
            Citizen citizen=new Citizen("小丽");
            card.setCitizen(citizen);
            session.save(card);

            transaction.commit();
        }finally{
            HibernateUtils.close(session);
        }



    }

}

猜你喜欢

转载自blog.csdn.net/amazing_Code/article/details/82628540