私は3つの列:id int(10), status varchar(10), created_on timestamp NULL DEFAULT CURRENT_TIMESTAMP
を持つMySQLテーブルを持っています。 INSERT INTO EMPLOYEE(status) VALUES('STATUS1')
句を使用してテーブルに手動でレコードを挿入しようとすると、created_on
列の値も正しく入力されます。Hibernateの更新はDEFAULT CURRENT_TIMESTAMP SQL節を処理しますか?
ただし、Hibernateを介してレコードを挿入しようとすると、created_on
列に値が設定されません。それはNULLのままです。明示的にヌルではないと宣言していないので、私のコラムは現在nullが許されていますが、私の質問はハイバネート側に集中しています。
列に手動のINSERT
節のように自動的に値が設定されるようにするにはどうすればよいですか?これは、休止状態が動作するように設計されている方法ですか?
は、ここに私の休止状態の抜粋です:
Transaction tx = session.beginTransaction();
Employee employee = new Employee(status);
session.save(employee);
tx.commit();
そして、次の列が挿入クエリで指定されていない場合にのみ、
<?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>
ブラボ;これは動作します!ありがとう。 –