2015-10-19 42 views
0

我的實體的幾列有默認值,現在我需要做插入工作。 我知道我可以實現doInHibernate方法和createSqlQuery(例如「insert into test(test_column)values(DEFAULT)」)來完成它。 但是有什麼辦法可以使用getHibernateTemplate()。save()來做到這一點嗎?我真的不希望將列設置爲默認值一個接一個。getHibernateTemplate保存實體與默認值

+0

默認值將由數據庫處理。只需在數據庫級別爲列指定默認值,數據庫將處理它。沒有必要依賴hibernate這個 –

+0

@DattatreyaKugve如果列設置爲NOT-NULL那麼數據無法插入,因爲NULL值,而設置NULL,那麼列變爲空 –

+0

請參閱我的回答下面爲您的NOT NULL要求 –

回答

0

如果列設置爲NOT NULL,並且列在數據庫級別指定了默認值,那麼由hibernate生成的INSERT查詢不得包含該列,以便數據庫將爲其添加默認值。你可以讓hibernate在使用insertable=false進行INSERT時在你的@Column註釋中不要包含一個特定的列,如下所示。

@Column(name = "test_column", insertable=false) 
private int test_column 

這種方法的侷限性是Hibernate總是會忽略「test_column」,而這樣做插入不管它包含價值與否。希望對你很好

+0

是否我可以在需要時插入值,而如果我沒有指定值然後插入默認值? –

+0

你可以看看我的答案,看看它是否可行嗎? –