隨筆 - 11  文章 - 11  trackbacks - 0

          留言簿(2)

          隨筆分類(13)

          隨筆檔案(11)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          三個@Entity類Tc, Tracer, Track是三向關聯(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的三相關聯(lián)。

          用HQL可以通過特定的Tc,Tracer得到對應的所有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 閱讀(382) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 夏邑县| 兴安盟| 虹口区| 友谊县| 阿拉善盟| 仁怀市| 凤翔县| 东方市| 汤原县| 同德县| 乌拉特中旗| 葫芦岛市| 宝鸡市| 大竹县| 来安县| 绥滨县| 思茅市| 休宁县| 安龙县| 淄博市| 河北区| 东平县| 永靖县| 黄山市| 仁化县| 寻甸| 连云港市| 临高县| 黎平县| 宜川县| 松原市| 吉安市| 合川市| 家居| 长乐市| 盖州市| 望都县| 乌兰浩特市| 肇州县| 辽阳市| 泾川县|