{"id":450,"date":"2008-12-11T08:13:53","date_gmt":"2008-12-11T15:13:53","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/?p=450"},"modified":"2008-12-11T08:13:53","modified_gmt":"2008-12-11T15:13:53","slug":"criteria-na-jpa-20-public-review","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2008\/12\/11\/criteria-na-jpa-20-public-review\/","title":{"rendered":"Criteria na JPA 2.0: Public Review!"},"content":{"rendered":"<p><script type=\"text\/javascript\"> function get_style450 () { return \"none\"; } function end450_ () { document.getElementById('wqd450').style.display = get_style450(); } <\/script>Na &#8220;<a href=\"http:\/\/jcp.org\/aboutJava\/communityprocess\/pr\/jsr317\/index.html\">Public Review<\/a>&#8221; da <a href=\"http:\/\/jcp.org\/en\/jsr\/detail?id=317\">JSR317<\/a> &#8211; que trata da JPA 2.0 &#8211; foi adicionado suporte a <a href=\"http:\/\/www.hibernate.org\/hib_docs\/v3\/reference\/en-US\/html_single\/#querycriteria\">Criteria API<\/a> na especifica\u00e7\u00e3o. Pode ser que em menos de dois anos possamos evoluir nessa especifica\u00e7\u00e3o e usar menos as implementa\u00e7\u00f5es, minha esperan\u00e7a \u00e9 que melhorem pelo menos at\u00e9 a vers\u00e3o final, programada para o in\u00edcio de 2009.<\/p>\n<p>Como sempre criaram uma nomenclatura totalmente diferente para entidades da API, dificultando o entendimento da comunidade com anos de uso da \u00fanica implementa\u00e7\u00e3o que possu\u00eda essa API: <a href=\"http:\/\/www.hibernate.org\/\">Hibernate<\/a>. Comparem a <a href=\"http:\/\/www.milfont.org\/docs\/hibernate-3.2\/doc\/api\/\">API de Criteria do Hibernate<\/a> com a <a href=\"http:\/\/jcp.org\/aboutJava\/communityprocess\/pr\/jsr317\/index.html\">API de Criteria da Spec<\/a>. Ok, podemos aceitar isso, pol\u00edtica&#8230;<\/p>\n<p>Faltou muita coisa ainda, mas parece que est\u00e3o trabalhando para melhorar at\u00e9 a vers\u00e3o final, pelo visto DELETE_ORPHAN vai sair de alguma forma:<\/p>\n<pre lang=\"java\">@Target({METHOD, FIELD}) @Retention(RUNTIME)\r\npublic @interface OneToMany {\r\n    Class targetEntity() default void.class;\r\n    CascadeType[] cascade() default {};\r\n    FetchType fetch() default LAZY;\r\n    String mappedBy() default \"\";\u00a0\u00a0\u00a0\r\n    boolean orphanRemoval() default false;\r\n}<\/pre>\n<p>Nota para os leitores:<\/p>\n<blockquote><p>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<br \/>\noption. We would welcome feedback on the form that this metadata should take.<\/p><\/blockquote>\n<p>N\u00e3o encontrei nada sobre como manipular as estrat\u00e9gias de fetching &#8211; que \u00e9 primordial &#8211; nos relacionamentos como temos no Hibernate: <span class=\"emphasis\"><em>Select fetching, <\/em><\/span><span class=\"emphasis\"><em>Subselect fetching, <\/em><\/span><span class=\"emphasis\"><em>Join fetching e <\/em><\/span><span class=\"emphasis\"><em>Batch fetching. <\/em>Nem a API de Criteria possui estrat\u00e9gia com FetchMode, apenas uma &#8220;Issue&#8221; aberta para a interface FetchJoinObject que dever\u00e1 trabalhar isso, eu espero.<em><br \/>\n<\/em><\/span><\/p>\n<p>Ainda assim continuamos <a href=\"http:\/\/www.milfont.org\/tech\/2008\/10\/27\/especificacao-ou-implementacao\/\">indicando o uso do Hibernate direto ao inv\u00e9s da especifica\u00e7\u00e3o<\/a> at\u00e9 que a especifica\u00e7\u00e3o seja est\u00e1vel o suficiente com features decentes para um desenvolvimento s\u00e9rio em Java. A API de Criteria da implementa\u00e7\u00e3o Hibernate continua ainda muito superior principalmente se voc\u00ea precisar de consultas <a href=\"http:\/\/blog.caelum.com.br\/2008\/09\/11\/divisions-com-hibernate-uso-avancado-da-criteria-api\/\">um pouco mais avan\u00e7adas<\/a>.<\/p>\n<p>Confiram o material e decidam.<\/p>\n<p id=\"wqd450\">Typically chemist&#8217;s shop can sale to you with discreet treatments for various soundness problems. There are numerous of safe online pharmacies that will deliver medications to your address. There are divers medicines for each afflictions. Learn more about &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra manufacturer coupon<\/a>&#8220;. Maybe &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">viagra discount coupons<\/a>&#8221; is a extremely complicated question. Matters, like &#8220;<a href=\"http:\/\/free-viagrasamples.com\/viagra_coupons.html\">coupons for viagra<\/a>&#8220;, are coupled numerous types of heartiness problems. If you need to take formula medications, ask your dispenser to check your testosterone levels before. Sometimes the treatment options may turn on erectile dysfunction remedies or a suction device that helps get an erection. Keep in mind web-site which is ready to sell erectile dysfunction drugs like Viagra without a recipe is fraudulent. When you purchase from an unknown web-site, you run the risk of getting counterfeit remedies. <\/p>\n<p><script type=\"text\/javascript\"> end450_(); <\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Na &#8220;Public Review&#8221; da JSR317 &#8211; que trata da JPA 2.0 &#8211; foi adicionado suporte a Criteria API na especifica\u00e7\u00e3o. Pode ser que em menos de dois anos possamos evoluir nessa especifica\u00e7\u00e3o e usar menos as implementa\u00e7\u00f5es, minha esperan\u00e7a \u00e9 que melhorem pelo menos at\u00e9 a vers\u00e3o final, programada para o in\u00edcio de 2009. Como [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,38,39],"tags":[243,217,216],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/450"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=450"}],"version-history":[{"count":7,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/450\/revisions"}],"predecessor-version":[{"id":457,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/450\/revisions\/457"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=450"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=450"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=450"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}