getHibernateTemplate保存实体与默认值

问题描述:

我的实体的几列有默认值,现在我需要做插入工作。 我知道我可以实现doInHibernate方法和createSqlQuery(例如“insert into test(test_column)values(DEFAULT)”)来完成它。 但是有什么办法可以使用getHibernateTemplate()。save()来做到这一点吗?我真的不希望将列设置为默认值一个接一个。getHibernateTemplate保存实体与默认值

+0

默认值将由数据库处理。只需在数据库级别为列指定默认值,数据库将处理它。没有必要依赖hibernate这个 –

+0

@DattatreyaKugve如果列设置为NOT-NULL那么数据无法插入,因为NULL值,而设置NULL,那么列变为空 –

+0

请参阅我的回答下面为您的NOT NULL要求 –

如果列设置为NOT NULL,并且列在数据库级别指定了默认值,那么由hibernate生成的INSERT查询不得包含该列,以便数据库将为其添加默认值。你可以让hibernate在使用insertable=false进行INSERT时在你的@Column注释中不要包含一个特定的列,如下所示。

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

这种方法的局限性是Hibernate总是会忽略“test_column”,而这样做插入不管它包含价值与否。希望对你很好

+0

是否我可以在需要时插入值,而如果我没有指定值然后插入默认值? –

+0

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