Проблема Lombok.hashCode с «java.lang.StackOverflowError: null»JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Проблема Lombok.hashCode с «java.lang.StackOverflowError: null»

Сообщение Anonymous »

У меня есть две таблицы, имеющие отношение один к одному, как показано ниже:

Код: Выделить всё

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private int id;

private String name;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "book_dtail_id")
private BookDetail bookDetail;
}

@Entity
@Table(name = "book_detail")
@Data
@NoArgsConstructor
@AllArgsConstructor
public class BookDetail {
@Id
@GeneratedValue(strategy = GenerationType.TABLE)
private Integer id;

@Column(name = "number_of_pages")
private Integer numberOfPages;

@OneToOne(mappedBy = "bookDetail")
private Book book;
}
Я использовал форму для ввода данных, как показано ниже.

Код: Выделить всё

@Data
@NoArgsConstructor
@AllArgsConstructor
public class BookForm {
Book book;
BookDetail bookDetail;
}
Контроллер выглядит так:

Код: Выделить всё

String handleNewBook(Model model){
Book book = new Book();
BookDetail bookDetail = new BookDetail();
BookForm bookForm = new BookForm(book, bookDetail);

model.addAttribute("bookForm", bookForm);
return "index";
}

String handleSaveBookCreate(BookForm bookForm, Model model){
bookForm.getBook().setBookDetail(bookForm.getBookDetail());
bookForm.getBookDetail().setBook(bookForm.getBook());
bookService.save(bookForm.getBook()));
return "index";
}
Последней является моя форма, как показано ниже:

Код: Выделить всё



Submit

Вроде все без проблем, но когда я "bookService.save(bookForm.getBook()));" выполняется, я получил ошибку, как показано ниже

Код: Выделить всё

java.lang.StackOverflowError: null,
at com.zangland.study.jpa.entity.BookDetail.hashCode(BookDetail.java:17) ~[classes/:na]
at com.zangland.study.jpa.entity.Book.hashCode(Book.java:16) ~[classes/:na]
at com.zangland.study.jpa.entity.BookDetail.hashCode(BookDetail.java:17) ~[classes/:na]
at com.zangland.study.jpa.entity.Book.hashCode(Book.java:16) ~[classes/:na]
повторите то же самое, что и выше, около 100 строк.... означает ли это, что я не могу использовать Lombok.hashCode?

Сохраненная книга: '32768','Spring JPA','32768'
Сведения о сохраненной книге: '32768','1157'>

Подробнее здесь: https://stackoverflow.com/questions/349 ... error-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»