隨筆-14  評論-34  文章-0  trackbacks-0
          我用的是Oracle:兩個表
          -- 創建用戶表
          CREATE TABLE SCOTT.bloguser
          (
              id    
          NUMBER NOT NULL,
              username    
          VARCHAR2(50UNIQUE NOT NULL,
              password    
          VARCHAR2(50NOT NULL,
              
          CONSTRAINT PK_bloguser PRIMARY KEY (id )
          );
          -- 創建用戶表主鍵序列
          CREATE SEQUENCE SEQ_BLOGUSERID START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE  NOCYCLE  NOORDER ;

          -- 創建bolg表
          CREATE TABLE SCOTT.bolginfo
          (
              id    
          NUMBER,
              userId    
          NUMBER NOT NULL,
              content    
          VARCHAR2(1000),
              
          CONSTRAINT PK_bolginfo PRIMARY KEY (id )
          );
          -- 創建bolg表主鍵序列
          CREATE SEQUENCE SEQ_BLOGID START WITH 1 INCREMENT BY 1 MINVALUE 1 NOCACHE  NOCYCLE  NOORDER ;

          --添加外鍵約束
          ALTER TABLE SCOTT.bolginfo
              
          ADD CONSTRAINT FK_userId_blogId FOREIGN KEY (userId) REFERENCES SCOTT.bloguser(id);

          Bloguser.java
          package com.jam.hibeinate.po;

          import java.util.Set;

          /**
           * Bloguser entity.
           * 
           * 
          @author Jam Chan
           
          */
          public class Bloguser implements java.io.Serializable {


              private Long id;
              private String username;
              private String password;
              private Set bolginfos = new HashSet(0);

          }

          Bolginfo.java
          package com.jam.hibeinate.po;

          /**
           * Bolginfo entity.
           * 
           * 
          @author Jam Chan
           
          */
          public class Bolginfo implements java.io.Serializable {

              private Long id;
              private Bloguser bloguser;
              private String content;

          }

          Bloguser.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"
          >
          <!-- 
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              
          <class name="com.jam.hibeinate.po.Bloguser" table="BLOGUSER" schema="SCOTT">
                  
          <id name="id" type="java.lang.Long">
                      
          <column name="ID" precision="22" scale="0" />
                      
          <generator class="sequence">
                          
          <param name="sequence">
                              SEQ_BLOGUSERID
                          
          </param>
                      
          </generator>
                  
          </id>
                  
          <property name="username" type="java.lang.String">
                      
          <column name="USERNAME" length="50" not-null="true" unique="true" />
                  
          </property>
                  
          <property name="password" type="java.lang.String">
                      
          <column name="PASSWORD" length="50" not-null="true" />
                  
          </property>
                  
          <set name="bolginfos" inverse="true" cascade="all" lazy="false" outer-join="auto">
                      
          <key>
                          
          <column name="USERID" precision="22" scale="0" not-null="true" />
                      
          </key>
                      
          <one-to-many class="com.jam.hibeinate.po.Bolginfo" />
                  
          </set>
              
          </class>
          </hibernate-mapping>

          Bolginfo.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"
          >
          <!-- 
              Mapping file autogenerated by MyEclipse Persistence Tools
          -->
          <hibernate-mapping>
              
          <class name="com.jam.hibeinate.po.Bolginfo" table="BOLGINFO" schema="SCOTT">
                  
          <id name="id" type="java.lang.Long">
                      
          <column name="ID" precision="22" scale="0" />
                      
          <generator class="sequence">
                          
          <param name="sequence">SEQ_BLOGID</param>
                      
          </generator>
                  
          </id>
                  
          <many-to-one name="bloguser" class="com.jam.hibeinate.po.Bloguser" fetch="select" insert="true" update="true" outer-join="true">
                      
          <column name="USERID" precision="22" scale="0" not-null="true" />
                  
          </many-to-one>
                  
          <property name="content" type="java.lang.String">
                      
          <column name="CONTENT" length="1000" />
                  
          </property>
              
          </class>
          </hibernate-mapping>

          注:Spring的applicationContext.xml事務代理管理的配置省略……

          之前我實現多表查詢的時候拋出
          could not initialize proxy - the owning Session was closed
          org.hibernate.LazyInitializationException: could not initialize proxy 
          - the owning Session was closed
          ……………………
          的異常,如果想使Session is opened需要在web.xml添加如下配置:
               <filter>
                  
          <filter-name>openSessionInViewFilter</filter-name>
                  
          <filter-class>
                      org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
                  
          </filter-class>
              
          </filter>
              <!-- 選擇需要過濾的頁面 -->
              <filter-mapping>
                  
          <filter-name>openSessionInViewFilter</filter-name>
                  
          <url-pattern>*.faces</url-pattern>
              
          </filter-mapping>
              
          <filter-mapping>
                  
          <filter-name>openSessionInViewFilter</filter-name>
                  
          <url-pattern>*.do</url-pattern>
              
          </filter-mapping>
              
          <filter-mapping>
                  
          <filter-name>openSessionInViewFilter</filter-name>
                  
          <url-pattern>*.jsp</url-pattern>
              
          </filter-mapping>

          之后就OK啦~!!哈哈



          posted on 2008-03-23 10:06 Jam Chan 閱讀(977) 評論(0)  編輯  收藏 所屬分類: SSH整合
          主站蜘蛛池模板: 兴化市| 合肥市| 柯坪县| 中超| 旬邑县| 登封市| 黑山县| 石阡县| 离岛区| 长岛县| 兰溪市| 五莲县| 荣成市| 南丰县| 慈溪市| 津南区| 印江| 建始县| 敦化市| 灵璧县| 连南| 五家渠市| 高雄县| 慈利县| 龙胜| 合肥市| 鄂温| 全南县| 丹棱县| 手游| 丽水市| 张家界市| 桦川县| 东平县| 汕尾市| 新丰县| 三原县| 巴青县| 山西省| 肇源县| 苍南县|