[Hibernate] Repeated column in mapping for entity

Boa tarde Galera,

Estou com esse problema no hibernate, pois tenho a seguinte:

@Entity
@Table(catalog="[banco]", schema="dbo", name = "trm_user")
@Immutable
@Where(clause="cod_user_status = 'A'")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class User implements Serializable {

	@Id
	@Column(name="cod_iduser",insertable=false, updatable=false)
	private String id;

//getter and setter.
}
@Entity
@Table(catalog="[banco]", schema="dbo", name = "trm_system")
public class System  implements java.io.Serializable {

	@Id
	@Column(name="cod_idsystem",insertable=false, updatable=false)
	private Long codIdsystem;

//get e set
}
@Entity
@Table(catalog="[banco]", schema="dbo", name = "sam_group")
public class Group  implements java.io.Serializable {

	@Id
	@Column(name="cod_idgroup",insertable=false, updatable=false)
	private Long codIdGroup;
//get e set
}
@Entity
@Table(catalog="[banco]", schema="dbo", name = "sam_user_system")
@IdClass(UserSystemPK.class)
public class UserSystem  implements java.io.Serializable {

        @Id
	private User user;
    
	@Id
	private System system;
//get e set

}
@Embeddable
public class UserSystemPK implements java.io.Serializable {

	@ManyToOne
	@JoinColumn(name="cod_iduser")
	private User user;
	
	@ManyToOne
	@JoinColumn(name="cod_idsystem")
	private System system;
//get e set
}
@Entity
@Table(catalog="[banco]", schema="dbo", name = "sam_system_group")
@IdClass(SystemGroupPK.class)
public class SystemGroup  implements java.io.Serializable {

	@Id
	private System system;
    
	@Id
	private Group group;
//get e set
}
@Embeddable
public class SystemGroupPK implements java.io.Serializable {

	@ManyToOne
	@JoinColumn(name="cod_idsystem")
	private System system;
	
	@ManyToOne
	@JoinColumn(name="cod_idgroup")
	private Group group;

//get e set
}
@Entity
@Table(catalog="[banco]", schema="dbo", name = "sam_user_system_group")
@IdClass(UserSystemGroupPK.class)
public class UserSystemGroup implements java.io.Serializable {

	@Id
	private UserSystem userSystem;
	
	@Id
	private SystemGroup systemGroup;

//get e set
}
@Embeddable
public class UserSystemGroupPK implements java.io.Serializable {

	@ManyToOne
	@JoinColumns({@JoinColumn(name="cod_iduser"), @JoinColumn(name="cod_idsystem")})
	private UserSystem userSystem;
	
	@ManyToOne
	@JoinColumns({@JoinColumn(name="cod_idsystem"), @JoinColumn(name="cod_idgroup")})
	private SystemGroup systemGroup;

//get e set
}

E acontece esse erro, referente aos cod_idsystem que é chave nas duas classes:

Alguem já passou por isso, tem alguma sugestão ou solução??

Na classe UserSystemGroup tire os dois atributos Ids e adicione um atributo do tipo UserSystemGroupPK com anotation @EmbeddedId para acesso as suas chaves, vc já disse que é uma chave na PK… por isso o erro…

Ex:

@EmbeddedId
private UserSystemGroupPK pk;

get set…

[]s

mais eu não vou perder os properties systemGroup e userSystem da Classe UserSystemGroupPK para a classe UserSystemGroup?

Att,

Não :wink: