es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Spring Data JPA Hibernate One-to-One no crea la FK del padre en el hijo.

Tengo la entidad principal ‘Book’ con el campo de la entidad secundaria ‘cover’ (solo para un ejemplo más simple):

DDL para las tablas:

Por lo tanto, cuando llamo a bookRepository.save (book), se crea 1 nueva línea en la tabla ‘books’ y 1 nueva línea en la tabla ‘cover’. Pero el campo ‘BOOK_ID’ en la tabla ‘cover’ está VACÍO!

¿Cómo puedo arreglarlo?

ACTUALIZACIÓN para Faeemazaz Bhanej
No tengo nada especial en el controlador:

Controlador:

PostMapping (“/book”)
public Book saveBook (@RequestBody Book book) {
return service.saveBook (book);
}

Servicio:

public Book saveBook (Book book) {
return repository.save (book);
}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Respuesta:
    Puede solucionar esto configurando el campo ‘book’ de la entidad ‘Cover’ antes de guardar la entidad ‘Book’. Esto se puede hacer en el método ‘saveBook’ del servicio:

    public Book saveBook(Book book) {
        Cover cover = book.getCover();
        if (cover != null) {
            cover.setBook(book);
        }
        return repository.save(book);
    }
    

Comments are closed.