我有一个表(不是我创建的,也不能被我修改)有大约30列,其中有一个序列的代理主键。从这30列中,只有3列不能为空(我们称之为col1、col2和col3),并使用这3列和其他6列可以为空(col4。。。col9)列我有一个唯一的索引。我怎么能用Hibernate来映射
it doesn't allow null values at
@Id
attributes nor
@EmbeddedId
? 考虑到我不允许更改任何数据库属性,建议的最佳解决方法是什么?
考虑到我想要实现一个crud rest api,它应该检查该实体是否已经存在以更新数据,否则,将其插入到同一方法中。经过
(1,2,3) values (col1,col2,col3)
到我的查询应该导致成功插入空表。之后,如果我试图插入
(1,2,3,4) values (col1,col2,col3,col4)
seqPK col1(notNull) col2(notNull) col3(notNull) col4(null) col25(null) ...
1 1 2 3 null null ...
2 1 2 3 4 null ...
因为(1,2,3,null(x6))不同于(1,2,3,4,null(x5))。但是如果我试着插入
(1,2,3,25) values (col1,col2,col3,col25)
seqPK col1 col2 col3 col4(null) col25(null) ...
1 1 2 3 null 25 ...
2 1 2 3 4 null ...
我计划用一个
@Query
在我的findById中(传递所有9个参数),并始终强制它们不为空(
@NotNull
),从而在不使用任何
@身份证
我可以提供hibernate的功能。有更好的方法吗?