91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring里面一對多的關系如何使用注解實現

發布時間:2021-12-06 12:23:24 來源:億速云 閱讀:287 作者:小新 欄目:開發技術

這篇文章主要介紹Spring里面一對多的關系如何使用注解實現,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    Spring里面一對多的關系可以用@OnetoMany注解來實現

    然后在實際使用中,如果要對從屬對象按條件排序該怎么處理呢?可以用注解來實現的也就是@OrderBy

    來看看我的這個例子

    一個Product對象,里面有個OnetoMany關系對應到多張圖片,然后我這個圖片在后臺要支持排序,所以我就在Picture這個類里面加了一個ordernum的int型字段來進行排序標記

    @OneToMany(cascade = CascadeType.ALL,mappedBy = "product",fetch = FetchType.EAGER)
    private List<Picture> pictures;

    然后我在取值的時候怎樣才能讓圖片按照我的要求來進行排序呢

    就是使用@OrderBy

    看一下具體是怎么使用

    @Target({METHOD, FIELD})
    @Retention(RUNTIME)
    public @interface OrderBy { 
       /**
        * An <code>orderby_list</code>.  Specified as follows:
        *
        * <pre>
        *    orderby_list::= orderby_item [,orderby_item]*
        *    orderby_item::= [property_or_field_name] [ASC | DESC]
        * </pre>
        *
        * <p> If <code>ASC</code> or <code>DESC</code> is not specified,
        * <code>ASC</code> (ascending order) is assumed.
        *
        * <p> If the ordering element is not specified, ordering by
        * the primary key of the associated entity is assumed.
        */
        String value() default "";
    }

    通過這個注解的定義可以看出它的參數就是一個String

    比如我項目里按照圖片的ordernum升序排列就是@OrderBy("ordernum ASC");ordernum是字段名 ASC對應排序方式,中間用空格隔開

    當然也支持多個條件進行排序,比如我要通過ordernum和id進行,那就是@OrderBy("ordernum ASC,id ASC")

    最后我的代碼

    @OneToMany(cascade = CascadeType.ALL,mappedBy = "product",fetch = FetchType.EAGER)
    @OrderBy("ordernum ASC")
    private List<Picture> pictures;

    Entity One-to-Many 排序設置

    /**
     * 評論實體類,對應 TCOMMENT 表。
     * @author William
     */
    @Entity
    @Table(name = "TCOMMENT")
    public class Comment {
     
     /**
      * 標識ID字段為主鍵,主鍵生成策略為:自動。
      */
     @Id @GeneratedValue
     private Long id;
     private String nickname;
     private String content;
     private Integer note;
     /**
      * 發表日期,對應 posted_date 字段,字段類型為TIMESTAMP。
      */
     @Column(name = "posted_date")
     @Temporal(TemporalType.TIMESTAMP)
     private Date postedDate;
     
     // Constructors, setters, getters
    }
    /**
     * 新聞實體類,對應 News表。
     * @author William
     */
    @Entity
    @NamedQuery(name = "findAllNews", query = "SELECT n FROM News n")
    public class News {
     
     /**
      * 標識ID字段為主鍵,主鍵生成策略為:自動。
      */
     @Id @GeneratedValue
     private Long id;
     /**
      * content新聞內容,該字段必填。
      */
     @Column(nullable = false)
     private String content;
     /**
      * comments評論,與之進行一對多關聯。<br/>
      * FetchType.EAGER 獲取新聞時立即相關評論。<br/>
      * CascadeType.ALL 支持所有級聯操作。<br/>
      * OrderBy 獲取評論列表時,按照postedDate(發表日期)降序排列。
      */
     @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
     @JoinTable(name = "NEWS_COMMENT", joinColumns = @JoinColumn(name = "NEWS_ID"),
      inverseJoinColumns = @JoinColumn(name = "COMMENT_ID"))
     @OrderBy("postedDate DESC")
     private List<Comment> comments; 
     // Constructors, setters, getters
    }
    CREATE TABLE TCOMMENT (
     ID BIGINT,
     NICKNAME VARCHAR(50),
     CONTENT VARCHAR(500),
     NOTE INT,
     POSTED_DATE TIMESTAMP,
     PRIMARY KEY (ID)
    );
     
    CREATE TABLE NEWS (
     ID BIGINT,
     CONTENT VARCHAR(500),
     PRIMARY KEY (ID)
    );
     
    CREATE TABLE NEWS_COMMENT (
     NEWS_ID BIGINT,
     COMMENT_ID BIGINT,
     PRIMARY KEY (NEWS_ID, COMMENT_ID),
     FOREIGN KEY (NEWS_ID) REFERENCES NEWS(ID),
     FOREIGN KEY (COMMENT_ID) REFERENCES TCOMMENT(ID)
    );

    以上是“Spring里面一對多的關系如何使用注解實現”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    大厂| 婺源县| 上思县| 灌南县| 和田市| 通辽市| 辽阳县| 三门县| 昌都县| 红安县| 湘西| 慈利县| 当涂县| 西青区| 龙南县| 井陉县| 肥东县| 阿城市| 安陆市| 东方市| 奉贤区| 乐陵市| 朝阳县| 榆社县| 贵德县| 怀柔区| 缙云县| 浑源县| 星子县| 德清县| 乌拉特前旗| 阿瓦提县| 聊城市| 荣成市| 永年县| 满洲里市| 甘德县| 永川市| 广饶县| 都兰县| 武城县|