What is the difference between @ManyToOne(optional=false) vs. @Column(nullable=false)

Viewed 71427

In JPA, I am confused when to use the attribute optional=false and the annotation @Column(nullable=false). What is the difference?

2 Answers

Both is used to prevent a null value, but if you mind that null should be blocked in ...

The database layer (and you want to generate the schema using JPA) --> use @Column(nullable=false)

The runtime (and before contacting the database)--> use optional=false (much faster than the first checking).

If you want both abilities, use them both.

Related