返回顶部
首页 > 资讯 > 精选 >Spring里面一对多的关系如何使用注解实现
  • 400
分享到

Spring里面一对多的关系如何使用注解实现

2023-06-21 22:06:01 400人浏览 八月长安
摘要

这篇文章主要介绍spring里面一对多的关系如何使用注解实现,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Spring里面一对多的关系可以用@OnetoMany注解来实现然后在实际使用中,如果要对从属对象按条件排序该

这篇文章主要介绍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 {        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 排序设置

    @Entity@Table(name = "TCOMMENT")public class Comment {   @Id @GeneratedValue private Long id; private String nickname; private String content; private Integer note;  @Column(name = "posted_date") @Temporal(TemporalType.TIMESTAMP) private Date postedDate;  // Constructors, setters, getters}
    @Entity@NamedQuery(name = "findAllNews", query = "SELECT n FROM News n")public class News {   @Id @GeneratedValue private Long id;  @Column(nullable = false) private String content;  @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里面一对多的关系如何使用注解实现”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Spring里面一对多的关系如何使用注解实现

    本文链接: https://lsjlt.com/news/301308.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作