Problema em acessar variavel na classe de entidade JPA

5 respostas
davi_matos

Fala galerinha, tô cum probleminha aqui, tenho a seguinte classe de entidade relacional, onde tenho as colunas para acesso as colunas do meu BD, e tem uma variável que preciso tê-lo dentro dessa classe para usar e modificá-la em outra classe, que seria a variavel EDITABLE, mas não estou conseguindo acessá-la, nem modificá-la na outra classe, já tentei algumas coisas com @Transient e @Access, mas não obtive sucesso!!

Segue o código da classe:
@Entity
@Table(name = "pacientes")
@NamedQuery(name = "pacientes.igual", query = "select c from Paciente c where c.nome=:nome")
public class Paciente implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;
	@Column(name = "nome", nullable = false, length = 100)
	private String nome;
	@Column(name = "endereco", length = 100)
	private String endereco;
	@Column(name = "telefone")
	private int telefone;
	@Column(name = "idade")
	private int idade;
	@Column(name = "gravidade")
	private int gravidade;
	@Column(name = "pagamento")
	private int pagamento;
	@Transient
	private boolean editable; //variavel que preciso acessar

	public boolean isEditable() {
		return editable;
	}

	public void setEditable(boolean editable) {
		this.editable = editable;
	}
}

Na outra classe estou tentando acessar ela normal,

public boolean getEditable(Paciente pac) {
		return pac.isEditable();
	}
public String editAction(Paciente pac) {
		pac.setEditable(true);
		return null;
	}

Alguem poderia me ajudar??

5 Respostas

denilsont

a instancia pac está sendo editada sim, acontece que por estar em escopos diferentes, quando sai da função editAction pac volta a ser o que era antes, na verdade elas são objetos diferentes.
para ser possível isto, você tem duas opções:

1- retornar o próprio objeto modificado

public Paciente editAction(Paciente pac) {  
            pac.setEditable(true);  
            return pac;  
        }

2- fazer o set no mesmo escopo

davi_matos

Valeu pela ajuda denilsont,

Acho que essa primeira opção de retornar o objeto não vai dar certo, já que estou usando essa função numa action do JSF, segue o código

Você sabe se tinha alguma forma de retornar esse valor do EDITABLE pra esses objetos jsf?

denilsont

cara… não sei… mas tem uma abordagem que você pode usar.

cria uma instancia do atributo com o objeto no bean, assim vc usa this.paciente
você pode passar por parâmetro o objeto dando this.paciente = pac, ou simplesmente this.paciente.setEditable(pac.getEditable)

outra forma você teria que pesquisar ou se alguém souber, pode te ajudar.

jsf é tenso!

davi_matos

Nem me fale bixo, tô quebrando a cabeça com o projeto aqui da facul já faz um tempo…

Mas obrigado pelas informações, foi de grande ajuda, irei tentar fazer isso que você disse, valeu mesmo!

denilsont

no próximo projeto use o framework mvc de verdade. hehe
vraptor é uma boa escolha

Criado 5 de novembro de 2012
Ultima resposta 6 de nov. de 2012
Respostas 5
Participantes 2