Spring Boot-repository speichern funktioniert nicht (zeigt nur eine Auswahl)

Ich bin vor Stunden mit einem seltsamen Verfahren im Frühjahr Starten, wenn Sie versuchen, speichern Sie eine Entität zugeordnet.

Die entity-Klasse mit einem zusammengesetzten Schlüssel, der alle sein muss, die durch den Benutzer eingestellt ist, wie folgt:

package model

import javax.persistence.*

@Entity
@Table(name = 'MY_TABLE')
@IdClass(MyIdClass.class)
class MyClass implements Serializable{

    @Id
    @Column(name = "MY_COLUMN_1")
    Long column1

    @Id
    @Column(name = "MY_COLUMN_2")
    Long column2

    @Id
    @Column(name = "MY_COLUMN_3")
    String column3

    @Id
    @Column(name = "MY_COLUMN_4")
    Date date1

    @Column(name = "MY_COLUMN_5")
    Date date2

    @Column(name = "MY_COLUMN_6")
    BigDecimal column6
}

@Embeddable
class MyIdClass implements Serializable{
    Long column1
    Long column2
    String column3
    Date date1;
}

Das entsprechende repository ist:

package repository

import org.springframework.data.repository.CrudRepository

interface MyRepository extends CrudRepository<MyClass, Long>{
}

Mein service ist:

package service

import model.MyClass
import repository.MyRepository
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service

@Service
class MyService {

    @Autowired
    MyRepository repository

    void save(MyClass myClass) {
        repository.save(myClass)
    }
}

Mein controller stellt ein MyClass-Objekt mit allen Daten, einschließlich der den zusammengesetzten Schlüssel. Beim Aufruf der service-Methode speichern Sie das Objekt nicht in die Datenbank eingefügt. Ich sah die Protokolle und überprüft, dass es einem WÄHLEN Sie in MY_TABLE anstelle von EINFÜGEN. Ich versuchte, Sie nicht zu informieren, der zusammengesetzte Schlüssel in das Objekt und dann die save-Methode hat eine INSERT mit Fehler aufgrund der null-Werte in der primär-Schlüssel.

Ich verstehe wirklich nicht, warum die Einfügung erfolgt nicht, wenn der zusammengesetzte Schlüssel hat Werte. Wie kann ich es lösen?

Hab ich auch schon versucht mit @Transactional in der service-Klasse und hat nicht funktioniert. Ich habe es nicht eine Transaktion Konfiguration im Projekt seit dem Frühjahr Boot liefert es als Standard.

Dank.

InformationsquelleAutor Fabrizio | 2017-08-25
Schreibe einen Kommentar