Hibernate映射文件及实体类、Dao实现

<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.wepull.crm.domain.CstCustomer" table="cst_customer" schema="dbo" catalog="jb_crm_team0">
        <id name="custNo" type="java.lang.String">
            <column name="cust_no" length="17" />
            <generator class="assigned" />
        </id>
        <property name="custName" type="java.lang.String">
            <column name="cust_name" length="100" not-null="true" />
        </property>
        <property name="custRegion" type="java.lang.String">
            <column name="cust_region" length="50" />
        </property>
        <property name="custManagerId" type="java.lang.Long">
            <column name="cust_manager_id" />
        </property>
        <property name="custManagerName" type="java.lang.String">
            <column name="cust_manager_name" length="50" />
        </property>
        <property name="custLevel" type="java.lang.Integer">
            <column name="cust_level" />
        </property>
        <property name="custLevelLabel" type="java.lang.String">
            <column name="cust_level_label" length="50" />
        </property>
        <property name="custSatisfy" type="java.lang.Integer">
            <column name="cust_satisfy" />
        </property>
        <property name="custCredit" type="java.lang.Integer">
            <column name="cust_credit" />
        </property>
        <property name="custAddr" type="java.lang.String">
            <column name="cust_addr" length="300" />
        </property>
        <property name="custZip" type="java.lang.String">
            <column name="cust_zip" length="10" />
        </property>
        <property name="custTel" type="java.lang.String">
            <column name="cust_tel" length="50" />
        </property>
        <property name="custFax" type="java.lang.String">
            <column name="cust_fax" length="50" />
        </property>
        <property name="custWebsite" type="java.lang.String">
            <column name="cust_website" length="50" />
        </property>
        <property name="custLicenceNo" type="java.lang.String">
            <column name="cust_licence_no" length="50" />
        </property>
        <property name="custChieftain" type="java.lang.String">
            <column name="cust_chieftain" length="50" />
        </property>
        <property name="custBankroll" type="java.lang.Long">
            <column name="cust_bankroll" />
        </property>
        <property name="custTurnover" type="java.lang.Long">
            <column name="cust_turnover" />
        </property>
        <property name="custBank" type="java.lang.String">
            <column name="cust_bank" length="200" />
        </property>
        <property name="custBankAccount" type="java.lang.String">
            <column name="cust_bank_account" length="50" />
        </property>
        <property name="custLocalTaxNo" type="java.lang.String">
            <column name="cust_local_tax_no" length="50" />
        </property>
        <property name="custNationalTaxNo" type="java.lang.String">
            <column name="cust_national_tax_no" length="50" />
        </property>
        <property name="custStatus" type="java.lang.String">
            <column name="cust_status" length="1" />
        </property>
        <set name="cstActivities" inverse="true">
            <key>
                <column name="atv_cust_no" length="17" />
            </key>
            <one-to-many class="com.wepull.crm.domain.CstActivity" />
        </set>
        <set name="cstLinkmans" cascade="all" lazy="true" inverse="false">
            <key>
                <column name="lkm_cust_no" length="17" not-null="true" />
            </key>
            <one-to-many class="com.wepull.crm.domain.CstLinkman" />
        </set>
        <set name="cstLosts" inverse="true">
            <key>
                <column name="lst_cust_no" length="17" not-null="true" />
            </key>
            <one-to-many class="com.wepull.crm.domain.CstLost" />
        </set>
        <set name="cstServices" inverse="true">
            <key>
                <column name="svr_cust_no" length="17" />
            </key>
            <one-to-many class="com.wepull.crm.domain.CstService" />
        </set>
    </class>
</hibernate-mapping>
<?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">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.wepull.crm.domain.CstLinkman" table="cst_linkman" schema="dbo" catalog="jb_crm_team0">
        <id name="lkmId" type="java.lang.Long">
            <column name="lkm_id" />
            <generator class="native" />
        </id>
        <many-to-one name="cstCustomer" class="com.wepull.crm.domain.CstCustomer" fetch="select">
            <column name="lkm_cust_no" length="17" not-null="true" />
        </many-to-one>
        <property name="lkmCustName" type="java.lang.String">
            <column name="lkm_cust_name" length="100" />
        </property>
        <property name="lkmName" type="java.lang.String">
            <column name="lkm_name" length="50" not-null="true" />
        </property>
        <property name="lkmSex" type="java.lang.String">
            <column name="lkm_sex" length="5" />
        </property>
        <property name="lkmPostion" type="java.lang.String">
            <column name="lkm_postion" length="50" />
        </property>
        <property name="lkmTel" type="java.lang.String">
            <column name="lkm_tel" length="50" not-null="true" />
        </property>
        <property name="lkmMobile" type="java.lang.String">
            <column name="lkm_mobile" length="50" />
        </property>
        <property name="lkmMemo" type="java.lang.String">
            <column name="lkm_memo" length="300" />
        </property>
    </class>
</hibernate-mapping>
package com.wepull.crm.customer.dao;

import java.io.Serializable;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.wepull.crm.domain.CstActivity;
import com.wepull.crm.domain.CstCustomer;
import com.wepull.crm.domain.CstLinkman;
import com.wepull.crm.util.PageModel;

public class CustomerDaoImpl extends HibernateDaoSupport implements
		ICustomerDao {

	public PageModel findAll(PageModel pm) {
		String HQLCust = "from CstCustomer where 1=1 ";
		String COUNT_HQL = null;
		List<CstCustomer> customers = null;
		customers = getSession().createQuery(HQLCust).setFirstResult(
				pm.getFirstResult()).setMaxResults(pm.getPageSize()).list();
		pm.setResult(customers);
		//查询最大结果集数
		COUNT_HQL = "select count(custNo) " + HQLCust;
		long  maxCount = 0;
		maxCount = (Long) getSession().createQuery(COUNT_HQL).uniqueResult();
		pm.setTotal(maxCount);//将最大结果集条数返回
		return pm;
		//return getHibernateTemplate().find("from CstCustomer");
	}

	public void update(CstCustomer customer) {
		getHibernateTemplate().update(customer);
	}

	public void delete(String custNo) {
		System.out.println("Dao层:" + custNo);
		// 删除关联的联系人
		String HQLLink = "from CstLinkman linkman where linkman.cstCustomer.custNo=?";
		List<CstLinkman> cstLinkmans = getSession().createQuery(HQLLink)
				.setString(0, custNo).list();
		for (CstLinkman linkman : cstLinkmans) {
			getHibernateTemplate().delete(
					getHibernateTemplate().load(CstLinkman.class,
							linkman.getLkmId()));
		}
		// 删除关联的交往记录
		String HQLAct = "from CstActivity activity where activity.cstCustomer.custNo=?";
		List<CstActivity> cstActivities = getSession().createQuery(HQLAct)
				.setString(0, custNo).list();
		for (CstActivity activity : cstActivities) {
			getHibernateTemplate().delete(
					getHibernateTemplate().load(CstActivity.class,
							activity.getAtvId()));
		}
		getHibernateTemplate().delete(
				getHibernateTemplate().load(CstCustomer.class, custNo));

	}

	public CstCustomer findById(String custName) {
		return (CstCustomer) getHibernateTemplate().get(CstCustomer.class,
				custName);
	}

	public List<CstActivity> findAct(String custNo) {
		CstCustomer cstCustomer = (CstCustomer) getHibernateTemplate().get(
				CstCustomer.class, custNo);
		String HQL = "from CstActivity activity where activity.cstCustomer.custNo=?";
		List<CstActivity> activitys = getSession().createQuery(HQL).setString(
				0, custNo).list();
		return activitys;
	}

	public void delAct(Long atvId) {
		getHibernateTemplate().delete(
				getHibernateTemplate().load(CstActivity.class, atvId));
	}

	public CstActivity findActById(Long atvId) {
		return (CstActivity) getHibernateTemplate().get(CstActivity.class,
				atvId);
	}

	public void updateAct(CstActivity activity) {
		getHibernateTemplate().update(activity);
	}

	public void saveAct(CstActivity activity) {
		getHibernateTemplate().save(activity);
	}

	public List<CstLinkman> findLink(String custNo) {
		System.out.println("Dao层:" + custNo);
		CstCustomer cstCustomer = (CstCustomer) getHibernateTemplate().get(
				CstCustomer.class, custNo);
		String HQL = "from CstLinkman linkman where linkman.cstCustomer.custNo=?";
		List<CstLinkman> linkmans = getSession().createQuery(HQL).setString(0,
				custNo).list();
		return linkmans;
	}

	public void delLink(Long lkmId) {
		getHibernateTemplate().delete(
				getHibernateTemplate().load(CstLinkman.class, lkmId));
	}

	public CstLinkman findLinkById(Long lkmId) {
		return (CstLinkman) getHibernateTemplate().get(CstLinkman.class, lkmId);
	}

	public void updateLink(CstLinkman linkman) {
		getHibernateTemplate().update(linkman);
	}

	public void saveLink(CstLinkman linkman) {
		getHibernateTemplate().save(linkman);
	}
}
 

相关推荐