Java Persistence API - wartości domyślne

0

Powiedzmy, ze mam w bazie następującą tabele:

 CREATE TABLE Tabela(
"Imie" VARCHAR(50) NOT NULL,
"Kolor" VARCHAR(50) NOT NULL DEFAULT 'Czerwony'
)

Przy dodawaniu nowego rekordu w programie podaję tylko imię, a kolor ma być domyślny. Generowany jest wtedy następujący kod SQL:

INSERT INTO Tabela (Imie, Kolor) VALUES (?, ?)

bind => [Artur, null] 

W efekcie kolor jest null i generowany jest wyjątek.
Jak zrobić, żeby przy podaniu samego imienia dodawany był domyślny kolor?
Kolor jest typu String, więc mógłbym w klasie encji zrobić coś takiego:
private String kolor="Czerwony";
ale co w przypadku, gdy polem jest inna encja np:
private InnaEncja encja;
Bez sensu jest specjalnie tworzyć obiekt tej encji w celu ustawienia wartości domyślnej. Chciałbym żeby było to pobierane z definicji tabeli.

0

Z tego, co wyczytałem, spróbuj tak:

bind => [Artur, DEFAULT] 
0

albo możesz od strony bazy użyć NVL który zamieni ci miejsce oznaczone jako null na string podany przez Ciebie

0

Jeżeli mapujesz kolumnę w klasie to:

    @Column(name="kolor", columnDefinition="Varchar(50) default 'czerwony' ")

Podobnie w XMLu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1