Spring Boot возвращает нулевое значение для реляционной сущности после сохранения - PullRequest
0 голосов
/ 03 апреля 2020

Я работаю над приложением Spring Boot, и у меня есть две сущности AdminUsers и блоги, эти две сущности имеют отношение OneToMany, и я хотел вернуть все блоги после сохранения блога следующим образом

@PostMapping("/add")
    @ResponseBody
    public List<Blog> addBlog(@RequestBody Blog blog) {

        Blog savedBlog =  blogService.save(blog);
        return blogService.findAllBlogs();

    }

Проблема, с которой я сталкиваюсь, заключается в том, что tt возвращает null для последнего вставленного AdminUser блога все время следующим образом:

[
    {
        "id": 30,
        "adminid": 1,
        "blogcontent": "blog dddcontent",
        "blogtitle": "titleaa",
        "datetime": "1111-12-31 23:59:59",
        "adminUser": {
            "adminid": 1,
            "adminusername": "admin",
            "adminemail": "admin@kongcepts.com",
            "adminpassword": "$2a$10$3aVlo8BkGbKQYzMDMDZTi.6dQavPeY8j0yD833ldA4utNAE4SxzpC",
            "status": 1,
            "attempts": 0,
            "resetToken": "$2a$10$6o7N/u4pgwjWya30wueVve9oqPNO6TTLidOg6NincqL5lOvLh03oa"
        }
    },
    {
        "id": 31,
        "adminid": 1,
        "blogcontent": "blog dddcontent",
        "blogtitle": "titleaa",
        "datetime": "1111-12-31 23:59:59",
        "adminUser": null
    }
]

Но когда я достигаю этой конечной точки после этого

 @GetMapping("/get/blogs")
public List<Blog> listAllBlogs() {
    return blogService.findAllBlogs();
}

Возвращается как и ожидалось

[

    {
        "id": 30,
        "adminid": 1,
        "blogcontent": "blog dddcontent",
        "blogtitle": "titleaa",
        "datetime": "1111-12-31 23:59:59",
        "adminUser": {
            "adminid": 1,
            "adminusername": "admin",
            "adminemail": "admin@kongcepts.com",
            "adminpassword": "$2a$10$3aVlo8BkGbKQYzMDMDZTi.6dQavPeY8j0yD833ldA4utNAE4SxzpC",
            "status": 1,
            "attempts": 0,
            "resetToken": "$2a$10$6o7N/u4pgwjWya30wueVve9oqPNO6TTLidOg6NincqL5lOvLh03oa"
        }
    },
    {
        "id": 31,
        "adminid": 1,
        "blogcontent": "blog dddcontent",
        "blogtitle": "titleaa",
        "datetime": "1111-12-31 23:59:59",
        "adminUser": {
            "adminid": 1,
            "adminusername": "admin",
            "adminemail": "admin@kongcepts.com",
            "adminpassword": "$2a$10$3aVlo8BkGbKQYzMDMDZTi.6dQavPeY8j0yD833ldA4utNAE4SxzpC",
            "status": 1,
            "attempts": 0,
            "resetToken": "$2a$10$6o7N/u4pgwjWya30wueVve9oqPNO6TTLidOg6NincqL5lOvLh03oa"
        }
    }
]

Вот мои классы сущностей для AdminUser и Блоги

Администратор

 @Entity
@Table(name = "tbl_admin")
public class AdminUser {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "admin_id")
    private Integer adminid;

    @Column(name = "admin_username", nullable = false)
    private String adminusername;

    @Column(name = "admin_email", nullable = false)
    private String adminemail;

    @Column(name = "admin_password", nullable = false)
    private String adminpassword;
    @Column(name = "admin_status")
    private Integer status = 1;
    @Column(name = "admin_attempt")
    private Integer attempts = 0;
    @Column(name = "admin_reset_token")
    private String resetToken;

    @OneToMany(mappedBy = "adminUser")
    @JsonIgnore
    private List<Blog> blog;

и Блог

@Entity
@Table(name = "tbl_blog")
public class Blog {

    @Id
    @Column(name = "blog_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name = "admin_id")
    private Integer adminid;

    @Column(name = "blog_content")
    private String blogcontent;

    @Column(name = "blog_title")
    private String blogtitle;

    @Column(name = "blog_datetime")
    private String datetime;

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(name = "admin_id", updatable = false, insertable = false)
    private AdminUser adminUser;

1 Ответ

0 голосов
/ 03 апреля 2020

Попробуйте пометить свой метод save () в blogService с помощью @Transactional

...