Ich habe eine MySQL-Tabelle mit drei Spalten: id int(10), status varchar(10), created_on timestamp NULL DEFAULT CURRENT_TIMESTAMP
. Wenn ich versuche, Datensätze manuell in der Tabelle unter Verwendung der INSERT INTO EMPLOYEE(status) VALUES('STATUS1')
-Klausel einzufügen, füllt sie den Wert der Spalte created_on
ebenfalls korrekt auf. Wenn ich versuche, Datensätze über Hibernate einzufügen, wird die created_on
Spalte nicht aufgefüllt. Es bleibt als NULL erhalten. Ich verstehe, dass meine Spalte derzeit null zulässt, da ich nicht explizit angekündigt habe, dass sie nicht null ist, aber meine Frage konzentriert sich eher auf die Hibernationsseite.Aktualisiert Hibernate Update DEFAULT CURRENT_TIMESTAMP SQL-Klausel?
Was kann ich tun, um sicherzustellen, dass die created_on
Spalte automatisch wie die in meinem Handbuch INSERT
Klausel aufgefüllt wird? Oder ist dies der Weg, wie Hibernate funktioniert?
Hier ist meine Hibernate-Schnipsel:
Transaction tx = session.beginTransaction();
Employee employee = new Employee(status);
session.save(employee);
tx.commit();
Und finden Sie die Hibernate-Konfiguration
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="Employee" table="EMPLOYEE">
<meta attribute="class-description">
This class contains the employee detail.
</meta>
<id name="id" type="int" column="id">
<generator class="native"/>
</id>
<property name="status" column="status" type="string"/>
<property name="created_on" column="created_on" type="date"/>
</class>
</hibernate-mapping>
Bravo; das funktioniert! Vielen Dank. –