隨筆 - 11  文章 - 11  trackbacks - 0

          留言簿(2)

          隨筆分類(13)

          隨筆檔案(11)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          三個@Entity類Tc, Tracer, Track是三向關聯的的表, @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的子元素,從而實現Tc的三相關聯。

          用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 閱讀(386) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 陈巴尔虎旗| 蕉岭县| 秦皇岛市| 措勤县| 衡阳市| 新竹市| 乐陵市| 宁晋县| 安徽省| 建湖县| 天等县| 米易县| 皋兰县| 施甸县| 新津县| 吉水县| 长泰县| 新巴尔虎左旗| 浦东新区| 鄂托克前旗| 大化| 博罗县| 巨鹿县| 华坪县| 金湖县| 化隆| 岳阳市| 教育| 防城港市| 辉南县| 从化市| 岳普湖县| 福建省| 乌鲁木齐县| 宜宾县| 宁南县| 英吉沙县| 阿巴嘎旗| 莱州市| 灌南县| 慈溪市|