Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在关系的多个方面使用复合主键持久化关系的多个方面的数据_Java_Spring Boot_Hibernate_Spring Data Jpa_Spring Data - Fatal编程技术网

Java 如何在关系的多个方面使用复合主键持久化关系的多个方面的数据

Java 如何在关系的多个方面使用复合主键持久化关系的多个方面的数据,java,spring-boot,hibernate,spring-data-jpa,spring-data,Java,Spring Boot,Hibernate,Spring Data Jpa,Spring Data,我遇到了一个问题,任何帮助都将不胜感激。 我有一个一对多的关系实体,在关系的许多方面都有复合主键。 e、 g I有两个实体,如Client和Client\u User,Client与Client\u User关联,后者具有复合主键I-e、Client\u id和User\u id,当我使用Spring data Jpa将数据持久化到客户端实体时,我想将数据持久化到客户端实体。我的实体如下所示: @实体 @表(name=“客户”) 公共类ClientEntity实现了可序列化{ 私人int客户ID

我遇到了一个问题,任何帮助都将不胜感激。 我有一个一对多的关系实体,在关系的许多方面都有复合主键。 e、 g I有两个实体,如
Client
Client\u User
Client
Client\u User
关联,后者具有复合主键I-e、
Client\u id
User\u id
,当我使用Spring data Jpa将数据持久化到
客户端
实体时,我想将数据持久化到
客户端
实体。我的实体如下所示:

@实体
@表(name=“客户”)
公共类ClientEntity实现了可序列化{
私人int客户ID;
私有int用户id;
私有集合clientUsersByClientId;
// ...
@OneToMany(mappedBy=“clientByClientId”,fetch=FetchType.LAZY)
@级联(org.hibernate.annotations.CascadeType.SAVE\u UPDATE)
公共集合getClientUsersByClientId(){
返回clientUsersByClientId;
}
public void setClientUsersByClientId(集合clientUsersByClientId){
this.clientUsersByClientId=clientUsersByClientId;
}
}
@实体
@表(name=“客户\用户”)
@IdClass(ClientUserEntityPK.class)
公共类ClientUserEntity实现可序列化{
私人int客户ID;
私有int用户id;
@身份证
@列(name=“client\u id”)
public int getClientId(){
返回客户ID;
}
public void setClientId(int clientId){
this.clientId=clientId;
}
@身份证
@列(name=“user\u id”)
public int getUserId(){
返回用户标识;
}
public void setUserId(int userId){
this.userId=userId;
}
@许多酮
@JoinColumn(name=“client\u id”,referencedColumnName=“client\u id”,nullable=false,insertable=false,updateable=false)
公共客户端getClientByClientId(){
返回clientByClientId;
}
public void setClientByClientId(ClientEntity clientByClientId){
this.clientByClientId=clientByClientId;
}
}
公共类ClientUserEntityPK实现可序列化{
私人int客户ID;
私有int用户id;
@列(name=“client\u id”)
@身份证
public int getClientId(){
返回客户ID;
}
public void setClientId(int clientId){
this.clientId=clientId;
}
@列(name=“user\u id”)
@身份证
public int getUserId(){
返回用户标识;
}
public void setUserId(int userId){
this.userId=userId;
}
@凌驾
公共布尔等于(对象o){
如果(this==o)返回true;
如果(o==null | | getClass()!=o.getClass())返回false;
ClientUserEntityPK that=(ClientUserEntityPK)o;
return clientId==that.clientId&&
userId==that.userId;
}
@凌驾
公共int hashCode(){
返回Objects.hash(clientId,userId);
}
}

谢谢大家,我解决了这个问题。如果其他人也面临同样的问题,请发表评论,以便我写出详细的解决方案。谢谢大家,我解决了这个问题。如果其他人也面临同样的问题,请发表评论,以便我能写出详细的解决方案。