Can a @ManyToOne JPA relation be null?

46,947

Solution 1

You need to set:

@ManyToOne(optional = true, fetch = FetchType.LAZY)

not optional=false.

The @Column(nullable=true) is to instruct the DDL generation tool to include a NULL SQL column type constraint.

For more on optional vs nullable, check out this StackOverflow answer.

Solution 2

try this:

@JoinColumn(name = "subType_id", nullable = true)
Share:
46,947
Narges
Author by

Narges

A Happy Girl!

Updated on July 11, 2022

Comments

  • Narges
    Narges almost 2 years

    I have a table that has foreign key of another table (many to one relationship) but i want it to be nullable.

    Something like this:

    public class SubType() {
    
        @Id
        @GeneratedValue(generator = "system-uuid")
        @GenericGenerator(name = "system-uuid", strategy = "uuid")
        private String id;
    
    }
    
    public class TopUp {
    
        @Column(nullable = true)
        @ManyToOne(optional = false, fetch = FetchType.LAZY)
        private SubType subType;
    
    }
    

    But @Column(nullable = true) throws the NullPointerException and says subtype can not be null. Is there any way to get the ManyToOne accept null?