Wpis z mikrobloga

@mediateh7: ok. Nazwy Zmiennych piszemy z małych litery - popraw Id i Email na małe i sprawdz wtedy zobacz że masz zapis

insert into user (id, email, firstname, lastname, password, username)

więc prawdopodobnie hibernate głupieje.
Ty chcesz walidować unikalność na formularzu (tak, jak robisz z emailem), czy chcesz założyć constrainta? Bo teraz walidacji nie masz żadnej, insert się wysypuje, bo constraint jest naruszony, i to jest zachowanie jak najbardziej oczekiwane.
Adnotacją raczej tego nie ograsz zbyt ładnie. Najlepiej będzie chyba obsłużyć ten wyjątek (tylko nie tego NPE, a prawdziwy, który gdzieś tam przy insercie leci), i w catchu 'zinvalidować' to pole.