Hibernate Save gibt immer 0 zurück

John :

Mit Spring Hibernate versuche ich, eine Entität zu speichern und ihre ID zu erhalten. Das Speichern funktioniert einwandfrei, aber ich bekomme die ID nicht zurück. Die ID wird auch nicht in die Entität festgelegt, die an die Speichermethode übergeben wird. Die ID-Spalte in meiner Benutzertabelle ist automatisch inkrementiert.

Hier ist mein Java-Code:

@Inject
private SessionFactory sessionFactory;

private Session currentSession() {
    return sessionFactory.getCurrentSession();
}
public User save(final User user) {
    Serializable id = currentSession().save(user);
    LOG.info("id: {}, obj id: {}", (Long)id, user.getId());
    //outputs "id: 0, obj id: 0"
    return user;
}

Dies ist meine XML-Konfigurationsdatei für den Ruhezustand:

<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
  <class name="mypackage.user" table="users">
    <id name="id" type="java.lang.Long">
      <column name="id" />
      <generator class="sequence" />
    </id>
    <property name="username" type="java.lang.String">
      <column name="username"/>
    </property>
    <property name="password" type="java.lang.String">
      <column name="password"/>
    </property>
  </class>
</hibernate-mapping>
iota:

Ändern Sie idden Generator Ihres in identityund es wird funktionieren (vorausgesetzt, die idSpalte in Ihrer Datenbank ist auto_increment). Der IdentityGenerator erwartet Werte, die von einer Identitätsspalte in der Datenbank generiert werden, dh sie werden automatisch inkrementiert. Das Problem bei Ihrer Konfiguration im Ruhezustand besteht darin, dass Sie versuchen, den Sequenzgenerator zu verwenden, ohne die Sequenz zu definieren. Wenn Sie keine Sequenzen in Ihrer Datenbank definiert haben und Ihre idSpalte eine automatisch inkrementierte Spalte ist, ist die Verwendung des identityGenerators die beste Wahl, da der Ruhezustand die idvon der Datenbank generierte (mithilfe einer Abfrage, um die zuletzt generierte ID abzurufen).

<id name="id" type="java.lang.Long">
  <column name="id" />
  <generator class="identity" /><!--Changed from sequence to identity-->
</id>

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv