JPA + JGoodies! É possível?

4 Messages Forum Options Options
Permalink
jcomp
JPA + JGoodies! É possível?
Reply Threaded More
Print post
Permalink
Olá Hugo, td bom?
Lendo mais sobre JPA, notei que uma classe só pode ser persistida se for um POJO.
Quando utilizamos JGoodies, importamos algumas bibliotecas no Bean, como por exemplo extends Model, e utilizamos o método firePropertyChange(...) tb!

Mesmo associando nossos beans ao JGoodies ainda é possível utilizar a JPA?

Grato!
Hugo Teixeira
Re: JPA + JGoodies! É possível?
Reply Threaded More
Print post
Permalink
Esse problema é mais comum do que parece, principalmente porque o java não permite herança múltipla.
Assim, qualquer framework que é usado junto com o JGoodies e exige dos objetos algum tipo de herança ou simplesmente que eles sejam POJOs, complica a situação do código.

Uma solução razoavelmente tranquila é criar uma classe para o POJO (atributos + getters + setters) e outra classe que empacota esse POJO, criando métodos parecidos com o do POJO, mas que fazem outras coisas também.
Exemplo:
public class Aluno {
    private String nome;
    public String getNome() { return nome; }
    public void setNome(String nome) { this.nome = nome; }
}

O POJO acima deve ser usado pela camada de persistência.
Agora precisamos de uma classe para a GUI (JGoodies):
public class AlunoModel extends Model {
    private Aluno aluno;

    public AlunoModel(Aluno aluno) { this.aluno = aluno; }

    public String getNome() { return aluno.getNome(); }

    public void setNome(String nome) {
        String old = aluno.getNome();
        aluno.setNome(nome);
        this.firePropertyChange("nome", old, nome);
    }
}

Não é uma solução perfeita, mas resolve bem o problem.
A principal dificuldade está na manutenção dos dois conjuntos de métodos que acessam o POJO.
jcomp
Re: JPA + JGoodies! É possível?
Reply Threaded More
Print post
Permalink
Entendi! Bom não é uma solução tão viável como vc disse, mas resolve o problema. Complicado seria se tivéssemos uma grande qtde de beans em um projeto.

Bom, estou desenvolvendo com JGoodies e para persistência estou utlizando o BOXSql, o endereço para quem interessar é: http://boxsql.dev.java.net. Apesar de ser um framework novo e ainda em evolução, não tive problemas com ele, pelo menos por enquanto. Assim posso usar o JGoodies tranquilamente.

Valeu mais uma vez pela resposta Hugo!
Hugo Teixeira
Re: JPA + JGoodies! É possível?
Reply Threaded More
Print post
Permalink
Valeu pela dica!

Abraços,
Hugo Teixeira
http://www.componenthouse.com