hibernate 注解 一对一和一对多


package bdqn.entity.oneToone;

import javax.persistence.*;

/**
 * 一对一注解
 */
@Entity
@Table(name = "Card")
public class Card {
    @Id
    @GeneratedValue   //主键生成策略
    private Integer cid;
    @Column  //表中对应的列名
    private String cnum;
          //cascade 级联操作(删除,)
    @OneToOne(mappedBy = "card",cascade = CascadeType.ALL)//建立一对一的关系
    private Pepole people;

    public Integer getCid() {
        return cid;
    }

    public void setCid(Integer cid) {
        this.cid = cid;
    }

    public String getCnum() {
        return cnum;
    }

    public void setCnum(String cnum) {
        this.cnum = cnum;
    }

    public Pepole getPeople() {
        return people;
    }

    public void setPeople(Pepole people) {
        this.people = people;
    }
}
package bdqn.entity.oneToone;



import javax.persistence.*;

/**
 * Created by 一对一 on 2017/10/9.
 */
@Entity
@Table(name="Pepole")
public class Pepole {
    @Id
    @GeneratedValue
    private Integer pid;
    @Column
    private String pname;
    @OneToOne
    @JoinColumn(name="cid")
    private Card card;
    public Integer getPid() {
        return pid;
    }
    public void setPid(Integer pid) {
        this.pid = pid;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    public Card getCard() {
        return card;
    }
    public void setCard(Card card) {
        this.card = card;
    }
}
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--根节点-->
<hibernate-configuration>
    <session-factory>
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
    <property name="connection.username">scott</property>
    <property name="connection.password">1234</property>
    <!--SQL dialect SQL方言 缺少hibernate不行-->
    <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!--在控制台打印sql-->
    <property name="show_sql">true</property>
    <!-- 自动构建表结构 如果是creat 先delete在创建 如果是update 自动更新表结构 -->
    <property name="hbm2ddl.auto">update</property>
        <!-- 关联小配置-->
        
     
<!-- <mapping  class="bdqn.entity.oneToone.Card"></mapping>
 <mapping class="bdqn.entity.oneToone.Pepole"></mapping>-->

</session-factory>
</hibernate-configuration>

测试:
 @Test
    public void test03() {
        Pepole people=new Pepole();
        Card card=new Card();
        people.setPname("123");
        card.setCnum("123133");
        card.setPeople(people);
        people.setCard(card);
        session.save(card);
}


一对多



package bdqn.entity.oneToMoney;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
/**
 * 一对多注解
 */
@Entity
@Table(name ="Depts" )
public class Dept {
    @Id
    @GeneratedValue
    private Integer did;
    @Column
    private String name;
    @OneToMany(mappedBy = "dept",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
    private Set<Emp> emp=new HashSet<Emp>();
    public Integer getDid() {
        return did;
    }
    public void setDid(Integer did) {
        this.did = did;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Set<Emp> getEmp() {
        return emp;
    }
    public void setEmp(Set<Emp> emp) {
        this.emp = emp;
    }
}
package bdqn.entity.oneToMoney;

import javax.persistence.*;

/**
 * 多对一
 */
@Entity
@Table(name = "Emps")
public class Emp {
    @Id
    @GeneratedValue
    private Integer eid;
    @Column
    private String name;
    @ManyToOne
    @JoinColumn(name = "did")
    private Dept dept;

    public Integer getEid() {
        return eid;
    }

    public void setEid(Integer eid) {
        this.eid = eid;
    }

    public String getName() {
        return name;
    }

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

    public Dept getDept() {
        return dept;
    }

    public void setDept(Dept dept) {
        this.dept = dept;
    }
}
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!--根节点-->
<hibernate-configuration>
    <session-factory>
    <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
    <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
    <property name="connection.username">scott</property>
    <property name="connection.password">1234</property>
    <!--SQL dialect SQL方言 缺少hibernate不行-->
    <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>
        <!--在控制台打印sql-->
    <property name="show_sql">true</property>
    <!-- 自动构建表结构 如果是creat 先delete在创建 如果是update 自动更新表结构 -->
    <property name="hbm2ddl.auto">update</property>
        <!-- 关联小配置-->
        
        <mapping class="bdqn.entity.oneToMoney.Dept"></mapping>
        <mapping class="bdqn.entity.oneToMoney.Emp"></mapping>
    </session-factory>
</hibernate-configuration>
测试:
//一对多
@Test
public void test09() {
    Dept dept=new Dept();
    dept.setName("财务部");
    bdqn.entity.oneToMoney.Emp emp=new bdqn.entity.oneToMoney.Emp();
    emp.setName("aa");
    dept.getEmp().add(emp);
    emp.setDept(dept);
    session.save(dept);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值