<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    甜咖啡

    我的IT空間

    hibernate關系映射----多對一單向關聯

    一個客戶可以對應多個訂單。

    表結構:兩張表使用powerdesiner設計生成,產生引用錯誤。

    出現問題:1.定義的級聯關系只安一中方式生成,即雙向的所以刪除了parent表的set屬性,同時刪除映射文件的set集合,

                   2.沒有定義級聯關系cascade屬性

     

    drop table if exists Customer1;

    drop table if exists OrderC1;

    /*==============================================================*/
    /* Table: Customer1                                             */
    /*==============================================================*/
    create table Customer1
    (
       id                   int not null auto_increment,
       name                 varchar(20),
       primary key (id)
    )
    type = InnoDB;

    /*==============================================================*/
    /* Table: OrderC1                                               */
    /*==============================================================*/
    create table OrderC1
    (
       id                   int not null,
       order_id             varchar(20),
       customer_id          int not null,
       primary key (id)
    )
    type = InnoDB;

    alter table OrderC1 add constraint FK_Reference_1111 foreign key (customer_id)
          references Customer1 (id) on delete restrict on update restrict;

    注意:因為有外鍵約束,需要事務支持,在安裝數據庫的時候,需要配置mysql數據庫服務器的參數。數據庫的引擎應該用InnoDB

    二、通過myeclipse生成實體和配置文件:
               

    package many_one;

    @SuppressWarnings("serial")
    public class Customer1  implements java.io.Serializable {
         private Integer id;
         private String name;
        public Customer1() {
        }
        public Customer1(String name ) {
            this.name = name;
        }

        public Integer getId() {
            return this.id;
        }
       
        public void setId(Integer id) {
            this.id = id;
        }

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

     

    @SuppressWarnings("serial")
    public class Orderc1  implements java.io.Serializable {

         private Integer id;
         private Customer1 customer1;
         private String orderId;

        public Orderc1() {
        }

        public Orderc1(Customer1 customer1) {
            this.customer1 = customer1;
        }
       
        public Orderc1(Customer1 customer1, String orderId) {
            this.customer1 = customer1;
            this.orderId = orderId;
        }
        public Integer getId() {
            return this.id;
        }
       
        public void setId(Integer id) {
            this.id = id;
        }

        public Customer1 getCustomer1() {
            return this.customer1;
        }
       
        public void setCustomer1(Customer1 customer1) {
            this.customer1 = customer1;
        }

        public String getOrderId() {
            return this.orderId;
        }
       
        public void setOrderId(String orderId) {
            this.orderId = orderId;
        }
    }

    配置文件

    Customer1.hbm.xml

    <hibernate-mapping>
        <class name="many_one.Customer1" table="customer1" catalog="test1" >
            <id name="id" type="integer" >
                <column name="id" not-null="false"/>
                <generator class="increment" />
            </id>
            <property name="name" type="string">
                <column name="name" length="20" />
            </property>
        </class>
    </hibernate-mapping>

     

    Orderc1.hbm.xml

    <hibernate-mapping>
        <class name="many_one.Orderc1" table="orderc1" catalog="test1">
            <id name="id" type="integer">
                <column name="id" />
                <generator class="increment" />
            </id>
            <many-to-one name="customer1" class="many_one.Customer1" fetch="select" cascade="save-update">
                <column name="customer_id" not-null="true" />
            </many-to-one>
            <property name="orderId" type="string">
                <column name="order_id" length="20" />
            </property>
        </class>
    </hibernate-mapping>

    package many_one;

    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;

    public class tests {

     /**
      * @param args
      */
     public static void main(String[] args) {

      Configuration cfg = new Configuration().configure();
      SessionFactory sf  =cfg.buildSessionFactory();
      Session session =sf.openSession();
      
      Transaction ts = session.beginTransaction();
      
      Customer1 c = new Customer1("c1");
      Orderc1 o = new Orderc1();
      o.setOrderId("23");
      
      o.setCustomer1(c);
      
      session.save(o);
      
      ts.commit();
     
     }


    }

    posted on 2011-03-26 23:37 甜咖啡 閱讀(482) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     

    導航

    <2011年3月>
    272812345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統計

    常用鏈接

    留言簿(1)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 无人视频在线观看免费播放影院 | 一边摸一边爽一边叫床免费视频| 美女视频黄a视频全免费| 亚洲国产成人一区二区精品区| yellow视频免费看| 亚洲精品无码99在线观看| 女人裸身j部免费视频无遮挡| 亚洲av午夜精品一区二区三区 | 亚洲mv国产精品mv日本mv| 四虎1515hh永久久免费| 亚洲H在线播放在线观看H| 噜噜嘿在线视频免费观看| 亚洲爆乳无码专区www| 亚洲成a人在线看天堂无码| h片在线观看免费| 亚洲成A人片在线观看WWW| 国产高清免费视频| 亚洲成AV人片高潮喷水| 亚洲无码视频在线| 亚洲一区免费观看| 亚洲一级特黄特黄的大片| 免费a级毛片大学生免费观看| 成人精品视频99在线观看免费| 亚洲成AV人片在线观看无| 精品久久8x国产免费观看| 亚洲色无码专区一区| 亚洲国产成人久久精品99| 在线看片免费人成视频福利| 亚洲综合一区二区精品久久| 免费鲁丝片一级在线观看| 国产三级在线免费观看| 国产线视频精品免费观看视频| 亚洲AV日韩AV天堂一区二区三区| 波多野结衣在线免费视频| 老司机亚洲精品影院在线观看| 亚洲日韩精品A∨片无码| 二级毛片免费观看全程| 亚洲福利视频一区| 日本成人在线免费观看| 野花香高清视频在线观看免费| 在线观看亚洲AV日韩A∨|