powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Связь между таблицами @OneToMany и @ManyToOne
4 сообщений из 4, страница 1 из 1
Связь между таблицами @OneToMany и @ManyToOne
    #40083177
Дмитрий2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет

Есть 2 сущности Author и Book. Предполагается что у одного автора может быть несколько книг. Создаю вот такие сущности

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
@Entity
@Table(name="authors")
public class Author {
    private Integer id;
    private String name;
    private Set<Book> books;

    public Author() {
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @JsonManagedReference
    @Fetch(FetchMode.SELECT)
    @OneToMany(fetch = FetchType.EAGER,mappedBy = "author", cascade = CascadeType.ALL)
    public Set<Book> getBooks() {
        return books;
    }
    public void setBooks(Set<Book> books) {
        this.books = books;
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
@Entity
@Table(name="books")
public class Book {
    private Integer id;
    private String book_name;
    private Author author;

    public Book() {
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }

    public String getBook_name() {
        return book_name;
    }
    public void setBook_name(String book_name) {
        this.book_name = book_name;
    }

    @JsonBackReference
    @ManyToOne
    @JoinColumn(name = "author_id")
    public Author getAuthor() {
        return author;
    }
    public void setAuthor(Author author) {
        this.author = author;
    }
}




Когда я передаю нужный мне id автора все работает хорошо подтягиваются все его книги.
{
"id": 1,
"name": "author1",
"books": [
{
"id": 1,
"book_name": "book1"
},
{
"id": 2,
"book_name": "book2"
},
{
"id": 3,
"book_name": "book3"
}
]
}


Но когда я передаю нужный мне id книги он не выводит автора. А лишь выводит следующую информацию
{
"id": 1,
"book_name": "book1"
}

Что мне нужно сделать чтобы информация об авторе книги тоже выводилась?
...
Рейтинг: 0 / 0
Связь между таблицами @OneToMany и @ManyToOne
    #40083310
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий2011,

Код где?
...
Рейтинг: 0 / 0
Связь между таблицами @OneToMany и @ManyToOne
    #40083702
Музаффар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий2011,

так с JsonРеференсы так работают же, делает однонаправленный связь, разве нет?
...
Рейтинг: 0 / 0
Связь между таблицами @OneToMany и @ManyToOne
    #40084257
Дмитрий2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понял из прочитанного то там идет связь с обоих сторон.

Т.е. если отношение @OneToMany то мы получаем нужную нам записи и все записи которые подтянутся из другой таблицы.

А если с другой стороны у нас @ManyToOne то мы ссылаясь на какую-нибудь запись сможем получить из другой таблицы связанную запись. Допустим у нас в одной таблице автор, а в другой его книги. И тогда по id книги с помощью @ManyToOne должны подтянуть автора этой книги.

Но это не работает. Вернее в запросе эта информация не отображается но через код эти данные получить можно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Связь между таблицами @OneToMany и @ManyToOne
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]