Olá, estou tentando pegar o campo login da minha tabela Usuario e fazer um JOIN na tabela GrupoAcesso, que tem um campo chamado login também, eu preciso que quando eu preencher o campo login na tabela Usuario, na hora de persistir o valor também seja gravado na tabela GrupoAcesso, no campo login. Tem como?
Segue o código para ilustração:
package com.modelo.bean;
import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MappedSuperclass;
import javax.persistence.OneToOne;
@MappedSuperclass
public abstract class Usuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Integer idUsuario;
@Column(unique = true, length = 20, nullable = false)
protected String login;
@Column(length = 16, nullable = false)
protected String senha;
@Column(length = 60, nullable = false)
protected String nome;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "idContato")
protected Contato contato = new Contato();
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "idEndereco")
protected Endereco endereco = new Endereco();
@OneToOne(cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
@JoinColumn(name = "login", insertable=false, updatable=false, referencedColumnName = "login")
protected GrupoAcesso grupoAcesso = new GrupoAcesso();
// @ManyToOne(cascade = CascadeType.ALL)
// @JoinColumn(name = "login", insertable=false, updatable=false)
// protected GrupoAcesso grupoAcesso = new GrupoAcesso();
public Integer getIdUsuario() {
return idUsuario;
}
public void setIdUsuario(Integer idUsuario) {
this.idUsuario = idUsuario;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Contato getContato() {
return contato;
}
public void setContato(Contato contato) {
this.contato = contato;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
package com.modelo.bean;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
@Entity
public class GrupoAcesso implements Serializable {
@Id
private String login;
private String nomeGrupoAcesso = "promotor";
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getNomeGrupoAcesso() {
return nomeGrupoAcesso;
}
public void setNomeGrupoAcesso(String nomeGrupoAcesso) {
this.nomeGrupoAcesso = nomeGrupoAcesso;
}
}