2017-07-19 6 views
1

ich eine DB-Tabelle mit dieser Spalte haben:fehlgeschlagen UUID in MySQL-Datenbank zu speichern, mit Hibernate/JPA

uuid CHARACTER(36) NOT NULL 

Es ist auch eine UNIQUE INDEX (uuid) aber keinen Primärschlüssel.

In der Entity-Klasse, die Definition der UUID Spalte ist dies wie:

@GeneratedValue(generator = "system-uuid") 
    @GenericGenerator(name = "system-uuid", strategy = "uuid") 
    @Column(name = "uuid", updatable = false, nullable = false) 
    private UUID uuid; 

Dann wird ein Repository-Schnittstelle gibt es die Daten-Repository-Schnittstelle Frühling:

@Repository 
public interface SaveRepository extends Repository<CoreEvent, Integer> { 
} 

Als ich anrief saveRepository. save(), beschwert sich, dass der Uuid-Wert null ist:

org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:278) 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244) 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:491) 
    at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) 
    at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) 

... ...

Habe ich etwas vermisst, um die UUID vor dem Speichern des Datensatzes in der db zu generieren?

Vielen Dank im Voraus :)

Antwort

Verwandte Themen