Hibernate决定是否执行更新或保存主键的唯一性。如果您查询数据库并加载以前自动生成的主键,则此方法很有用。但是,如果在ETL中创建了一个新实体,但它实际上只是数据库中已有的实体的副本。是否可以指示Hibernate执行更新而不是保存?
例如,我加载了几个描述产品和相关产品类别的XML文件。每个XML文件都描述了一个唯一的产品,但这些类别只是CATAGORIES表中数据库中已有的内容的重复。比方说,name = CAT1,CAT2或CAT3。但是当我在解析XML文件时为Products和Category创建POJO类实体的实例时,Category有一个新的且不同的自动生成的主键,但它仍然是CAT1,CAT2或CAT3。但是Hibernate执行Save,因为标识符是唯一的。但我想要一个更新。如果加载一个新的说CAT4,那么我想要一个Save。
在生成SaveOrUpdate决策时,Hibernate是否可以使用生成的主键以外的唯一键作为标识符?并且不排除使用自动生成的主键功能?