我有一个使用组合键的数据库。可以使用spring-data-jdbc吗?我尝试了里程碑版本1.1M2,其中我以以下方式映射了我的实体:
class History {
@ID
@Embedded
private CompositeHistoryID id;
}然后在我的仓库类中,我添加了
HistoryRepository extends Repository<History,CompositeHistoryID >{
History findByhId(CompositeHistoryID id)
}我跟踪SQL,但它不起作用。嵌入的部分可以工作,但where子句不正确。它使用了单个参数持有符,而不是常规的组合键结构,其中element1=subkey1和element2=subkey2等...
我有两个问题。有没有办法让复合ID起作用?
第二个问题是,让我们假设我在findByID上使用了一个自定义的@Query,在此之后,保存方法会工作吗?根本没有ID是什么,如果我随机选择一列,并说您将是我的ID,会怎么样?
发布于 2019-04-05 13:57:25
不,@Embedded不适用于身份证,yet。现在,所有SQL语句都假定id列有一个简单的值。我不认为有解决这个问题的办法。
一种可行的解决方法是创建一个视图,该视图将组合键表示为单个字段,并具有将正确数据写入基础表的触发器。
https://stackoverflow.com/questions/55513863
复制相似问题