JPA 2.0 Wish List

Nesse artigo foi publicada a seguinte wishlist do JPA 2.0:

  1. Restriction in callback methods.
  2. @ManyToOne, @OneToMany and @ElementCollection implicits.
  3. Converters.
  4. Method in EntityManagerFactory for obtaining the list of all entities.
  5. Composite keys without key class.
  6. UUID as GeneratedType for @GeneratedValue.
  7. Default fetch value for @ManyToOne.
  8. @ElementCollection.
  9. Qualified properties in @OrderBy.

Já ouvi falar de gente que gostaria de acessar a Connection também.

E vocês, do que sentem falta?

Sinto MUITA falta de algo como buscas do tipo Criteria do Hibernate.

Opa,

  • Criar as chamadas PFK - Primary Foreign Key, ou seja, dados q vem de outra tabela para uma outra como chave primaria. Não sei como faz isso … existe ? ( Acho q o item 5 resolve isso - maravilha)

  • Check nos atributos, por exemplo:
    ao criar um atributo char … gostaria q seus valores fossem ‘A’, ‘B’, ‘C’ - semelhante a constraint de check

  • Dar nomes as foreigns key e nomes as primaries keys. (Frescura, mas acho q come a ter um controle melhor da base)

  • Lazy e Eager - O q diferencia um do outro ?? se uso lazy tenho q fazer a chamada… collection.iterator() … size() … qq coisa … não da na mesma ?

  • Union no query language

Acho q é isso … o q sinto mais dificuldade mesmo é em relacao as chaves compostas …

Vlw

10- Criteria API

Com relação ao item 5. Composite keys without key class.

@Entity
public class Entity1 {
     @Id
      private String attribute1;

      @Id
      private String attribute2;
      
      ....
}

Agora o legal …

public class Entity2 {

    @Id
     private String number;

     @Id
     private Entity1 e1;

    ...
}

Quando gerar as tabelas, a tabela Entity2 terá 3 colunas chaves - attribute1 attribute2 number - isso é lindo !

Valeu

  1. Criteria API
  2. Criteria API com controle refinado de carga do grafo de objetos.

[quote=javaBeats]10. Criteria API
11. Criteria API com controle refinado de carga do grafo de objetos.[/quote]

tb gostaria desses!!! :lol:

Criteria e Projections com certeza…

Eu também gostaria de ter acesso à Connection para, em um caso particular, criar um statement com ela ou coisas do tipo… ia ser legal…

[quote=RaulCarlin]Criteria e Projections com certeza…

Eu também gostaria de ter acesso à Connection para, em um caso particular, criar um statement com ela ou coisas do tipo… ia ser legal…[/quote]

O acesso à connection é uma pegadinha. usar isso é POG.
O problema é resolvido com um NativeCriteria que pode ser executado pelo povedor de forma especifica.

[quote=RaulCarlin]
Eu também gostaria de ter acesso à Connection para, em um caso particular, criar um statement com ela ou coisas do tipo… ia ser legal…[/quote]

Eu não concordo com acesso direto à Connection. Bom, na verdade não acho que faça mal algum deixar disponível na API, mas já posso ver as besteiras que a galera desavisada vai fazer em nome do sagrado “aumento do desempenho”. Por quê você quer criar um statement “por fora”?

Meu argumento é, se você atingiu o ponto onde anda precisando dessas coisas… tá na hora de repensar o design. E se você realmente precisa rodar alguns statements, use as native queries :wink:

Ao invés disso, seria bom concentrar esforços no aprimoramento de features existentes em providers como o Hibernate; BatchSize e Fetching, Criteria… Customização de statements para determinadas entidades. Etc…

A JPA 2.0 possui uma API Criteria

Não cheguei à ponto de precisar disso, só falei que seria legal… eu uso uma Query se precisar algo específico, não to preocupado com o desempenho, só falei que seria legal… :frowning:

Criteria ja esta certo pro JPA 2.0… quem foi no FalandoEmJava sabe!

Esse artigo ta mais parecendo propaganda do OpenXava que qualquer outra coisa nao eh?

Criteria já ta ok.

EDIT: N lembrava q o Emmanuel confirmou Criteria… :smiley:

[quote=Paulo Silveira]
Esse artigo ta mais parecendo propaganda do OpenXava que qualquer outra coisa nao eh?[/quote]

Só porque ele citou apenas 10 vezes o OpenXava no artigo ? :mrgreen:

Eu gostaria de poder fazer isso: http://www.guj.com.br/posts/list/77162.java