getHibernateTemplate保存实体与默认值
我的实体的几列有默认值,现在我需要做插入工作。 我知道我可以实现doInHibernate方法和createSqlQuery(例如“insert into test(test_column)values(DEFAULT)”)来完成它。 但是有什么办法可以使用getHibernateTemplate()。save()来做到这一点吗?我真的不希望将列设置为默认值一个接一个。getHibernateTemplate保存实体与默认值
如果列设置为NOT NULL,并且列在数据库级别指定了默认值,那么由hibernate生成的INSERT查询不得包含该列,以便数据库将为其添加默认值。你可以让hibernate在使用insertable=false
进行INSERT时在你的@Column
注释中不要包含一个特定的列,如下所示。
@Column(name = "test_column", insertable=false)
private int test_column
这种方法的局限性是Hibernate总是会忽略“test_column”,而这样做插入不管它包含价值与否。希望对你很好
是否我可以在需要时插入值,而如果我没有指定值然后插入默认值? –
你可以看看我的答案,看看它是否可行吗? –
默认值将由数据库处理。只需在数据库级别为列指定默认值,数据库将处理它。没有必要依赖hibernate这个 –
@DattatreyaKugve如果列设置为NOT-NULL那么数据无法插入,因为NULL值,而设置NULL,那么列变为空 –
请参阅我的回答下面为您的NOT NULL要求 –