组合键和 spring-data-jdbc
Composite Key and spring-data-jdbc
我有一个使用复合键的数据库。是否可以使用 spring-data-jdbc?我尝试了里程碑版本 1.1M2,我通过以下方式映射了我的实体:
class History {
@ID
@Embedded
private CompositeHistoryID id;
}
然后在我的存储库 class 中,我添加了
HistoryRepository extends Repository<History,CompositeHistoryID >{
History findByhId(CompositeHistoryID id)
}
我追踪了 SQL,但没有成功。嵌入式部分有效,但 where 子句不正确。它使用单个参数持有者而不是具有常规复合键结构,其中 element1=subkey1 和 element2=subkey2 等等...
我有两个问题。有什么方法可以使复合 ID 起作用吗?
第二个问题是,假设我在 findByID
之上使用了自定义 @Query
之后 SAVE 方法会起作用吗?什么是完全没有ID,如果我随便挑一个列说你就是我的ID怎么办?
否 @Embedded
不适用于 ID,yet。
现在所有 SQL 语句都为 id 列假设一个简单的值。
而且我认为没有解决方法。
一个可行的解决方法是创建一个视图,将复合键显示为单个字段,并触发将正确的数据写入底层 table。
我有一个使用复合键的数据库。是否可以使用 spring-data-jdbc?我尝试了里程碑版本 1.1M2,我通过以下方式映射了我的实体:
class History {
@ID
@Embedded
private CompositeHistoryID id;
}
然后在我的存储库 class 中,我添加了
HistoryRepository extends Repository<History,CompositeHistoryID >{
History findByhId(CompositeHistoryID id)
}
我追踪了 SQL,但没有成功。嵌入式部分有效,但 where 子句不正确。它使用单个参数持有者而不是具有常规复合键结构,其中 element1=subkey1 和 element2=subkey2 等等...
我有两个问题。有什么方法可以使复合 ID 起作用吗?
第二个问题是,假设我在 findByID
之上使用了自定义 @Query
之后 SAVE 方法会起作用吗?什么是完全没有ID,如果我随便挑一个列说你就是我的ID怎么办?
否 @Embedded
不适用于 ID,yet。
现在所有 SQL 语句都为 id 列假设一个简单的值。
而且我认为没有解决方法。
一个可行的解决方法是创建一个视图,将复合键显示为单个字段,并触发将正确的数据写入底层 table。