How to set a default entity property value with Hibernate

Solution 1:

If you want a real database default value, use columnDefinition:

@Column(name = "myColumn", nullable = false, columnDefinition = "int default 100") 

Notice that the string in columnDefinition is database dependent. Also if you choose this option, you have to use dynamic-insert, so Hibernate doesn't include columns with null values on insert. Otherwise talking about default is irrelevant.

But if you don't want database default value, but simply a default value in your Java code, just initialize your variable like that - private Integer myColumn = 100;

Solution 2:

Use hibernate annotation.

@ColumnDefault("-1")
private Long clientId;

Recreate the table if it already exists for the changes to take effect.