Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Hibernate default values

Is there a way with hibernate to define default values for each field and for the sake of database size write null instead of these default values?

For inst. let's say the default value for String is "". I would like Hibernate to:

  1. return "" for each field, that has NULL in database.
  2. write NULL to database, when I try to write ""

Of course, I can write thousands of Getters and Setters, but can it be done automatically?

like image 650
Vojtěch Avatar asked Jul 26 '13 13:07

Vojtěch


1 Answers

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;

Source:

How to set default value in Hibernate

Of course, instead of using:

columnDefinition = “int default 100"

Try something like:

columnDefinition = “TEXT default `default_text`"

I'm not sure if that's syntaically correct, but check these out:

Text Field using Hibernate Annotation

Set default values using hibernate annotations in MYSQL

like image 147
But I'm Not A Wrapper Class Avatar answered Sep 29 '22 23:09

But I'm Not A Wrapper Class