@ManyToMany - como fazer?

Boa tarde a todos,

Eu estou tentando fazer um relacionamento entre duas tabelas, vou dar um exemplo. Tem as tabelas usuario, grupo e a tabela de relacionamento FK usuario_grupo.

Então do lado do usuário tem o código:

@ManyToMany
@JoinTable(name = “USUARIO_GRUPO”,
joinColumns = {
@JoinColumn(name = “CODUSUARIO”),
@JoinColumn(name = “CODEMPRESA”) },
inverseJoinColumns = {
@JoinColumn(name = “CODGRUPO”),
@JoinColumn(name = “CODEMPRESA”) })
private Set grupos;

Quando rodo o programa o erro abaixo é mostrado:

org.hibernate.MappingException: Repeated column in mapping for collection: Repeated column in mapping for collection: com.teste.model.User.groups column: COD_FRANQUIA

Vocês tem idéia de como fazer esse relacionamento funcionar sem ter que alterar a base de dados. É que o banco de dados não pode ser alterado!

[quote=abimaelrsergio]Boa tarde a todos,

Eu estou tentando fazer um relacionamento entre duas tabelas, vou dar um exemplo. Tem as tabelas usuario, grupo e a tabela de relacionamento FK usuario_grupo.

Então do lado do usuário tem o código:

@ManyToMany
@JoinTable(name = “USUARIO_GRUPO”,
joinColumns = {
@JoinColumn(name = “CODUSUARIO”),
@JoinColumn(name = “CODEMPRESA”) },
inverseJoinColumns = {
@JoinColumn(name = “CODGRUPO”),
@JoinColumn(name = “CODEMPRESA”) })
private Set grupos;

Quando rodo o programa o erro abaixo é mostrado:

org.hibernate.MappingException: Repeated column in mapping for collection: Repeated column in mapping for collection: com.teste.model.User.groups column: COD_FRANQUIA

Vocês tem idéia de como fazer esse relacionamento funcionar sem ter que alterar a base de dados. É que o banco de dados não pode ser alterado! [/quote]

a principio ta errado aki @JoinColumn(name = “CODEMPRESA”) @JoinColumn(name = “CODEMPRESA”)
naum é join referencedColumnName = “”

Olá Tiago,

   Muito obrigado por responder-me!
   Pelo que entendi, não devo usar name, devo usar referncedColumnName, é isso? vou testar.

Grato,
Abimael R. Sergio

[quote=abimaelrsergio]Olá Tiago,

   Muito obrigado por responder-me!
   Pelo que entendi, não devo usar name, devo usar referncedColumnName, é isso? vou testar.

Grato,
Abimael R. Sergio[/quote]

nao siga o exemplo


@ManyToMany
	@ForeignKey(name="fk_orientador")
	@JoinTable(name="agenBancaOrientador",
			joinColumns = @JoinColumn(name="idOrientador", referencedColumnName="id"),
			inverseJoinColumns = @JoinColumn(name="idAgenBanca", referencedColumnName="idBanca"))
	private List<AgenBanca> colAgenBanca;

@ManyToMany
	@ForeignKey(name="agenBanca_fk")
	@JoinTable(name="agenBancaOrientador",
			joinColumns = @JoinColumn(name="idAgenBanca", referencedColumnName="idBanca"),
			inverseJoinColumns = @JoinColumn(name="idOrientador", referencedColumnName="id"))
	private List<Orientador> colOrientador;