hibernate联合主键

1.配置文件设置hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate.sourceforge.net/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:@192.168.60.196:1521:hkcncd79
        </property>
        <property name="connection.username">
            cn85_ep_dbo
        </property>
        <property name="connection.password">
            welcome1
        </property>
        <property name="show_sql">
            true
        </property>
        <property name="format_sql">
            true
        </property>
        <property name="dialect">
            org.hibernate.dialect.OracleDialect
        </property>
        <mapping resource="entity/PTFL.hbm.xml" />
    </session-factory>



</hibernate-configuration>

2。实体类和联合主键类,注意都要实现Serializable接口

public class PTFLPK implements Serializable{
    private String id;
    private String num;
    private String bc;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }

    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public String getBc() {
        return bc;
    }
    public void setBc(String bc) {
        this.bc = bc;
    }
}


public class PTFL implements Serializable{
    private PTFLPK pk;
    private Date time;
    
    public PTFLPK getPk() {
        return pk;
    }
    public void setPk(PTFLPK pk) {
        this.pk = pk;
    }
    public Date getTime() {
        return time;
    }
    public void setTime(Date time) {
        this.time = time;
    }
    
}


3.实体配置文件PTFL.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="entity.PTFL" table="ep_last_wk_ptfl">
        <composite-id name="pk">
        <key-property name="num" column="LAST_WK_PTFL_NUM" type="java.lang.String" ></key-property>
        <key-property name="bc" column="BC" type="java.lang.String"></key-property>
        <key-property name="id" column="SAFE_ID" type="java.lang.String"></key-property>
        </composite-id>
        <property name="time" column="LAST_UPDATE_TIMESTAMP" type="java.sql.Date"></property>
    </class>
</hibernate-mapping>


4.测试类

public class HibernateOperateImp implements HibernateOperateDao {

    @Override
    public void delete(PTFL p) {
        // TODO Auto-generated method stub

    }

    @Override
    public void insert(PTFL p) {
        // TODO Auto-generated method stub

    }

    @Override
    public PTFL select(PTFLPK pk) {
        PTFL temp = new PTFL();
    
    Session session = HibernateDaoHelp.getSession();
    temp = (PTFL) session.get(PTFL.class, pk);
        return temp;
    }
    @Test
    public void test(){
        PTFL p = new PTFL();
        PTFLPK pk = new PTFLPK();
        pk.setId("chnca004");
        pk.setBc("CHN");
        pk.setNum("001111111111");
        PTFL temp = select(pk);
        
        System.out.println(temp.getTime());
    }
    @Override
    public void update(PTFL p) {
        // TODO Auto-generated method stub

    }

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值