Criteria na JPA 2.0: Public Review!

{ December 11th, 2008 }


cmilfont

Autor: cmilfont

Na “Public Review” da JSR317 – que trata da JPA 2.0 – foi adicionado suporte a Criteria API na especifica√ß√£o. Pode ser que em menos de dois anos possamos evoluir nessa especifica√ß√£o e usar menos as implementa√ß√Ķes, minha esperan√ßa √© que melhorem pelo menos at√© a vers√£o final, programada para o in√≠cio de 2009.

Como sempre criaram uma nomenclatura totalmente diferente para entidades da API, dificultando o entendimento da comunidade com anos de uso da √ļnica implementa√ß√£o que possu√≠a essa API: Hibernate. Comparem a API de Criteria do Hibernate com a API de Criteria da Spec. Ok, podemos aceitar isso, pol√≠tica…

Faltou muita coisa ainda, mas parece que estão trabalhando para melhorar até a versão final, pelo visto DELETE_ORPHAN vai sair de alguma forma:

@Target({METHOD, FIELD}) @Retention(RUNTIME)
public @interface OneToMany {
    Class targetEntity() default void.class;
    CascadeType[] cascade() default {};
    FetchType fetch() default LAZY;
    String mappedBy() default "";   
    boolean orphanRemoval() default false;
}

Nota para os leitores:

Open Issue: We also discussed the alternative of introducing a separate annotation for the orphanRemoval functionality and the alternative of introducing a REMOVE_ORPHAN cascade
option. We would welcome feedback on the form that this metadata should take.

N√£o encontrei nada sobre como manipular as estrat√©gias de fetching – que √© primordial – nos relacionamentos como temos no Hibernate: Select fetching, Subselect fetching, Join fetching e Batch fetching. Nem a API de Criteria possui estrat√©gia com FetchMode, apenas uma “Issue” aberta para a interface FetchJoinObject que dever√° trabalhar isso, eu espero.

Ainda assim continuamos indicando o uso do Hibernate direto ao invés da especificação até que a especificação seja estável o suficiente com features decentes para um desenvolvimento sério em Java. A API de Criteria da implementação Hibernate continua ainda muito superior principalmente se você precisar de consultas um pouco mais avançadas.

Confiram o material e decidam.

Categories: Engenharia de Software, Linguagens, Orientação a Objetos ~ ~ Trackback


Assine os coment√°rios deste artigo.


2 Responses to “Criteria na JPA 2.0: Public Review!”

  1. 1
    Rafael Ponte

    Tomara realmente que melhorem a vers√£o da especifica√ß√£o at√© o seu lan√ßamento, pois se JPA2.0 continuar t√£o fraquinha quanto o seu predecessor ent√£o as implementa√ß√Ķes continuar√£o reinando como √© o ocorrido hoje em dia.

  2. 2
    Handerson Frota

    Acho que vai demorar um pouco para a JPA “substituir” o Hibernate…mas quem sabe, claro que seria bem mais interessante usar a pr√≥pria Spec, mas enquanto isso….Hibernate ūüėČ

    Bom post.

Leave a Reply