{"id":13785,"date":"2022-11-11T09:57:33","date_gmt":"2022-11-11T15:57:33","guid":{"rendered":"http:\/\/201.237.206.56\/Sitios\/ugit.siua.ac.cr\/?p=13785"},"modified":"2024-02-05T15:34:03","modified_gmt":"2024-02-05T21:34:03","slug":"sigesa-ejemplos-especificaciones","status":"publish","type":"post","link":"https:\/\/sada.services\/?p=13785","title":{"rendered":"SIGESA: Ejemplos Espec\u00edficaciones"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Integer<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Equals<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/**********          SPECIFICATION: nombreLikeOrdenadoByNombre               *********************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    public static Specification&lt;PeriodoAnual&gt; anoEquals(final Integer ano) {\n        return new Specification&lt;PeriodoAnual&gt;() {\n            @Override\n            public Predicate toPredicate(Root&lt;PeriodoAnual&gt; root, CriteriaQuery&lt;?&gt; cq, CriteriaBuilder cb) {\n                Expression x = root.get(\"ano\");\n                Expression y = cb.literal(ano);\n\n                return cb.equal(x, y);\n            }\n        };\n    }\n\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Boolean<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Equals<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/****************          SPECIFICATION: activoEquals                   *************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n\n    public static Specification&lt;ClienteTavo&gt; activoEquals(final Boolean activo) {\n        return new Specification&lt;ClienteTavo&gt;() {\n            @Override\n            public Predicate toPredicate(Root&lt;ClienteTavo&gt; root, CriteriaQuery&lt;?&gt; cq, CriteriaBuilder cb) {\n                Expression x = root.get(\"activo\");\n                Expression y = cb.literal(activo);\n                return cb.equal(x, y);\n            }\n        };\n    }\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">String<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LikeOrdenadoBy <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/****************          SPECIFICATION: nombreLikeOrdenadoByNombre     *************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    public static Specification&lt;ClienteTavo&gt; nombreLikeOrdenadoByNombre(final String query) {\n        return new Specification&lt;ClienteTavo&gt;() {\n            @Override\n            public Predicate toPredicate(Root&lt;ClienteTavo&gt; root, CriteriaQuery&lt;?&gt; cq, CriteriaBuilder cb) {\n                Expression x = root.get(\"nombre\");\n                Expression y = cb.literal(\"%\" + query + \"%\");\n\n                cq.orderBy(cb.asc(x));\n                return cb.like(cb.upper(x), cb.upper(y));\n            }\n        };\n    }\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Fechas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>LessThan<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/****************          SPECIFICATION: nombreLikeOrdenadoByNombre     *************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    public static Specification&lt;ClienteTavo&gt; fechaDeNacimientoLessThan(final Date fechaNacimiento) {\n        return new Specification&lt;ClienteTavo&gt;() {\n            @Override\n            public Predicate toPredicate(Root&lt;ClienteTavo&gt; root, CriteriaQuery&lt;?&gt; cq, CriteriaBuilder cb) {\n                Expression x = root.get(\"fechaNacimiento\");\n                Expression y = cb.literal(fechaNacimiento);\n                return cb.lessThan(x, y);\n            }\n        };\n    }\n\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A\u00f1o entre<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>public static Specification&lt;PlanAporteEstrategico> periodoAnualEntre(final Integer anno) {\n        return new Specification&lt;PlanAporteEstrategico>() {\n            @Override\n            public Predicate toPredicate(Root&lt;PlanAporteEstrategico> root, CriteriaQuery&lt;?> cq,\n                    CriteriaBuilder cb) {\n                \/\/ build query here\n                Expression x = root.join(\"periodoAnualInicial\").get(\"ano\");\n                Expression y = root.join(\"periodoAnualFinal\").get(\"ano\");\n                Expression z = cb.literal(anno);\n                return cb.between(z,x,y);\n            }\n        };\n    }<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Subconsultas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ejemplo 1<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/****************          SPECIFICATION: tipoEtapaPorTipoPlan           *************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*\n     * Documentaci\u00f3n:\n     * SELECT * FROM TIPO_ETAPA WHERE ID_TIPO_ETAPA IN (SELECT TIPO_ETAPA FROM ETAPA_PLAN WHERE TIPO_PLAN = 3);\n     * \n     *\/\n    public static Specification&lt;TipoEtapa&gt; tipoEtapaPorTipoPlan(TipoPlan tipoPlan) {\n        return new Specification&lt;TipoEtapa&gt;() {\n            @Override\n            public Predicate toPredicate(Root&lt;TipoEtapa&gt; root, CriteriaQuery&lt;?&gt; cq, CriteriaBuilder cb) {\n\n                \/\/Subquery\n                Subquery&lt;EtapaPlan&gt; queryEtapaPlan = cq.subquery(EtapaPlan.class);\n                Root rootEtapaPlan = queryEtapaPlan.from(EtapaPlan.class);\n\n                \/\/ Expresi\u00f3n1: EtapaPLan\n                Expression selectTipoEtapa = rootEtapaPlan.get(\"tipoEtapa\");\n                Expression whereTipoPlan = rootEtapaPlan.get(\"tipoPlan\");\n                Expression litTipoPlan = cb.literal(tipoPlan);\n                queryEtapaPlan.select(selectTipoEtapa).where(cb.equal(whereTipoPlan, litTipoPlan));\n\n\n\n                \/\/ Expresi\u00f3n2: TipoEtapa\n                Expression whereIdTipoEtapa = root.get(\"id\");\n\n                \/\/ return\n                return whereIdTipoEtapa.in(queryEtapaPlan);\n            }\n        };\n    }\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/\n    \/*************************************************************************************************\/<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Integer Boolean String Fechas Subconsultas<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[443],"tags":[444,451],"class_list":["post-13785","post","type-post","status-publish","format-standard","hentry","category-sigesa","tag-sigesa","tag-specs"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/13785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13785"}],"version-history":[{"count":3,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/13785\/revisions"}],"predecessor-version":[{"id":16442,"href":"https:\/\/sada.services\/index.php?rest_route=\/wp\/v2\/posts\/13785\/revisions\/16442"}],"wp:attachment":[{"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sada.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}