如何使用hibernate基于复合键将两个表一对一地连接起来?

如何使用hibernate基于复合键将两个表一对一地连接起来?,hibernate,join,spring-data-jpa,Hibernate,Join,Spring Data Jpa,我正在尝试使用hibernate实体将两个表一对一地连接起来。我的两个表都有一个用户和产品列,这是表的组合键,我希望能够基于组合键连接表 我在这个网站上找到了其他答案,这些答案要么是@EmbeddedId,要么是复合键的部分列 这是许可证实体 公共类UserLicensePk实现可序列化{ 私有字符串用户标识; 私有字符串产品; } @实体(名称=“用户许可证”) @IdClass(值=UserLicensePk.class) 公共类用户许可证{ @身份证 @列(name=“user\u id”

我正在尝试使用hibernate实体将两个表一对一地连接起来。我的两个表都有一个用户和产品列,这是表的组合键,我希望能够基于组合键连接表

我在这个网站上找到了其他答案,这些答案要么是@EmbeddedId,要么是复合键的部分列

这是许可证实体

公共类UserLicensePk实现可序列化{
私有字符串用户标识;
私有字符串产品;
}
@实体(名称=“用户许可证”)
@IdClass(值=UserLicensePk.class)
公共类用户许可证{
@身份证
@列(name=“user\u id”)
私有字符串用户标识;
@身份证
@列(name=“product”)
私有字符串产品;
字符串类型;
}
这是用户实体。我想将用户许可证加入用户实体:

public类UserPk实现可序列化{
私有字符串用户标识;
私有字符串产品;
}
@实体(name=“user”)
@IdClass(值=UserPk.class)
公共类用户{
@身份证
@列(name=“user\u id”)
私有字符串用户标识;
@身份证
@列(name=“product”)
私有字符串产品;
@OneToOne(fetch=FetchType.LAZY)
@JoinColumns(值={
@JoinColumn(name=“user\u id”,referencedColumnName=“user\u id”),
@JoinColumn(name=“product”,referencedColumnName=“product”)
})
私有用户许可信息;
}
当我执行userRepo.findAll()时,就会得到异常

TypeMismatchException:为类UserLicense提供了错误类型的id。应为:类UserLicensePk,获得类UserPk。