隨筆 - 11  文章 - 11  trackbacks - 0

          留言簿(2)

          隨筆分類(13)

          隨筆檔案(11)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          三個@Entity類Tc, Tracer, Track是三向關(guān)聯(lián)的的表, @Embeddable類TcTracer則存儲著三個表的ForeignKey

          @Entity
          @Table(name= "tc", catalog="first_hiber")
          public class Tc {
                @org.hibernate.annotations.CollectionOfElements
                @JoinTable(name="tc_tracer", joinColumns=@JoinColumn(name="tc_id"))
                private Set<TcTracer> tcTracers = new HashSet<TcTracer>();
          
                @Id @GeneratedValue
                @Column(name="tc_id", nullable= false)
                private Long id;
          }
          
            @Embeddable
            @Table(name="tc_tracer")
            public class TcTracer {
                @org.hibernate.annotations.Parent
                private Tc tc;
            
          @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="tracer_id", nullable=false, updatable=false) private Tracer tracer; @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name="track_id", nullable=false, updatable=false) private Track track; }

          如上,將TcTracer作為Tc的子元素,從而實現(xiàn)Tc的三相關(guān)聯(lián)。

          用HQL可以通過特定的Tc,Tracer得到對應(yīng)的所有Track:

            select tctracers.track
            from Tc tc
                join tc.tcTracers tctracers
            where tc.name="tc name"
                and tctracers.tracer.name="tracer name"
          
           List<Track> tracks = session.createQuery(HQL).list();
          
          posted on 2007-04-02 17:45 hijeff 閱讀(386) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 合阳县| 东城区| 剑川县| 巴东县| 伊川县| 杭锦后旗| 巴中市| 淳化县| 淳安县| 桂林市| 平湖市| 武山县| 浦县| 永靖县| 顺平县| 孟连| 称多县| 隆化县| 和平区| 中山市| 扶沟县| 聊城市| 太仓市| 陇西县| 油尖旺区| 福海县| 桓台县| 左云县| 葵青区| 大田县| 华坪县| 克山县| 潼关县| 阿拉善盟| 辰溪县| 岳池县| 新源县| 扬州市| 大冶市| 英德市| 攀枝花市|