Search code examples
javahibernatespring-bootone-to-many

MySQLIntegrityConstraintViolationException:Column 'id' cannot be null


I'm using one to many relationship with hibernate and spring boot and I'm getting this error

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'invoice_id' cannot be null

My Entity classes

Invoice.java

@Entity
@Table
public class Invoice {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="invoice_id")
    private int id;

    @OneToMany(mappedBy = "invoice")
    private List<Product> products;
}

Product.java

@Entity
@Table
public class Product {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column
    private int product_id;

    @ManyToOne
    @JoinColumn(name="invoice_id")
    private Invoice invoice;
}

For creating invoice I need to create products so when I try to save Product I'm getting error

ProductService.java

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public void saveProduct(Product product){
        product.setDate(new Date());
        product.setStatus("Active");
        productRepository.save(product);
    }
}

Am I using annotations correct way?


Solution

  • @Column(name="invoice_id")
    

    Either rename it to

    @Column(name="id")
    

    or remove it.