Mysql
 sql >> Database >  >> RDS >> Mysql

spring data JPA - mysql - findById() vuoto a meno che findAll() non sia stato chiamato prima

Stavo affrontando lo stesso problema. La causa principale era la mancata corrispondenza tra la relazione @ManyToOne non annullabile e i dati persistenti nella tabella. Avevo questo:

@ManyToOne(optional = false)
  @JoinColumn(name="batch_id")
  private Batch batch;

il che significa che batch_id non può essere nullo in nessuna riga. Tuttavia, le mie righe avevano un valore nullo per la chiave esterna batch_id. Dopo aver rimosso optional =false (che è la regola aziendale prevista), findById ha iniziato a funzionare come previsto.

Ho ricevuto indicazioni da questo thread:Sono stanco di fare qualcosa con JpaRepository ma non riesco a trovare la riga con findById ,