César Francisco Castillo - Desarrollo de aplicaciones web con Jakarta EE

Здесь есть возможность читать онлайн «César Francisco Castillo - Desarrollo de aplicaciones web con Jakarta EE» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: unrecognised, на испанском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Desarrollo de aplicaciones web con Jakarta EE: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Desarrollo de aplicaciones web con Jakarta EE»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

¿Desea desarrollar aplicaciones innovadoras y adaptadas a las necesidades del mercado mundial?
Las aplicaciones empresariales constituyen el pilar fundamental del desarrollo de aplicaciones en la actualidad. Jakarta EE ofrece un conjunto de tecnologías listas para ser usadas con mucha facilidad, al permitir construir no solo aplicaciones robustas, escalables y fácilmente mantenibles, tal como lo exige la industria hoy en día, sino también pequeñas aplicaciones sin necesidad de grandes cambios.
Desarrollo de aplicaciones web con Jakarta EE le brinda el conocimiento y las herramientas necesarias para que pueda:
Construir proyectos web profesionales, integrando las especificaciones JPA, EJB, CDI y JSF
Gestionar grandes volúmenes de datos mediante carga diferida
Automatizar el envío de correos electrónicos
Diseñar e integrar reportes en aplicaciones
Construir y documentar APIs RESTful
Montar entornos de integración y despliegue continuo con Jenkins
Por muchísimo menos de lo que vale un curso completo de estas características, aprenderá a construir aplicaciones empresariales del mundo real, empleando las mejores técnicas e integrando diversas tecnologías, como solo los profesionales saben hacerlo. Con la adquisición de este libro, asentará las bases de su futuro como desarrollador Jakarta EE.

Desarrollo de aplicaciones web con Jakarta EE — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Desarrollo de aplicaciones web con Jakarta EE», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

CriteriaBuilder cb =em .getCriteriaBuilder ();CriteriaQuery cq =cb .createQuery ();

Root <Carrera >e =cq .from (Carrera .class);

cq .where (cb .equal (e .get (“tipo” ),1 );

Query query =em .createQuery (cq );

List <Carrera >lista =query .getResultList ();

2.9.4 Sentencias joins

La sentencia join permite enlazar objetos (registros) entre distintas entidades (tablas) mediante atributos (claves foráneas). Podemos especificar tres tipos de joins en función de nuestras necesidades, son los siguientes:

* JoinType.INNER

* JoinType.LEFT

* JoinType.RIGHT

El hecho de utilizar un join en una consulta no significa que esta recuperará los objetos relacionados. Para ello se debería usar fetch. Lamentablemente, fetch no es objeto de estudio de este libro, por lo que, si el lector desea aprender sobre ello, deberá acceder a la Wiki de EclipseLink que dejaré al final del capítulo.

Para comprender un poco más los vínculos entre clases, observe el siguiente diagrama UML:

Figura 210 Diagrama UML La entidad Carrera se vincula con la entidad Facultad - фото 58

Figura 2.10 Diagrama UML.

La entidad Carrera se vincula con la entidad Facultad mediante el atributo idfacultad , el cual nos indica que las carreras pertenecen a una facultad en particular. Podemos aprovechar esta relación y crear una consulta que retorne un listado con todas las carreras de una determinada facultad.

Para ello comenzaremos creando el objeto builder y el de criterios de la siguiente manera:

CriteriaBuilder criteriaBuilder =em .getCriteriaBuilder ();CriteriaQuery criteriaQuery =criteriaBuilder .createQuery ();

Una vez creados ambos objetos, debemos especificar cuál será el origen de la consulta, es decir, desde qué clase o entidad obtendremos los objetos. Para ello definiremos la raíz como se muestra en el siguiente fragmento de código:

Root raizCarrera = criteriaQuery.from(Carrera. class);

Con nuestra raíz definida en la entidad Carrera ya podemos especificar cuál es el atributo mediante el cual se vinculará con la entidad Facultad. En este caso, es el atributo idFacultad. Observe que se omite la especificación del tipo de join, ya que, por defecto, es de tipo INNER , y es con el que trabajaremos.

Si hubiésemos necesitado obtener las carreras que no tienen un id de facultad asociado, hubiéramos empleado un JoinType.LEFT y, si hubiéramos querido lo contrario, hubiéramos empleado un JoinType.RIGHT

Join <Carrera ,Facultad >join =raizCarrera .join (“idFacultad” );

Ahora debemos especificar en la cláusula where cuál será el atributo que utilizaremos como condición. En este caso utilizaremos el atributo idfacultad, cuyo tipo de dato es Integer , y lo compararemos con un código que recibiremos en una variable llamada codigoFacultad .

criteriaQuery .where (criteriaBuilder .equal (join .get (“idFacultad” ),codigoFacultad ));

Por último, solo nos falta crear la consulta y retornar el listado.

TypedQuery <Carrera >query =em .createQuery (criteriaQuery ); returnquery .getResultList ();

2.9.5 Ejemplos de consultas

Desarrollaremos algunas consultas empleando parte de lo aprendido en esta sección de la API de Criterios.

Listado de carreras:

CriteriaBuilder criteriaBuilder =em .getCriteriaBuilder ();CriteriaQuery criteriaQuery =criteriaBuilder .createQuery (Carrera .class);Root <Carrera >raiz =criteriaQuery .from (Carrera .class);TypedQuery <Carrera >query =em .createQuery (criteriaQuery ); returnquery .getResultList ();

Obtener una determinada carrera según su id:

CriteriaBuilder criteriaBuilder =em .getCriteriaBuilder ();CriteriaQuery criteriaQuery =criteriaBuilder .createQuery ();Root raiz =criteriaQuery .from (Carrera .class);criteriaQuery .where (criteriaBuilder .equal (raiz .get (“idCarrera” ),id ));Query query =em .createQuery (criteriaQuery ); return (Carrera )query .getSingleResult ();

Cantidad de carreras:

CriteriaBuilder criteriaBuilder =em .getCriteriaBuilder ();CriteriaQuery criteriaQuery =criteriaBuilder .createQuery ();Root <Carrera >raiz =criteriaQuery .from (Carrera .class);

criteriaQuery .select (criteriaBuilder .count (raiz ));TypedQuery <Long >query =em .createQuery (criteriaQuery );Long cantidad =query .getSingleResult ();

returncantidad ;

Listado de carreras ordenado de manera ascendente según su nombre:

CriteriaBuilder criteriaBuilder =em .getCriteriaBuilder ();CriteriaQuery criteriaQuery =criteriaBuilder .createQuery ();Root <Carrera >carreras =criteriaQuery .from (Carrera .class);

// Ordenamos ascendentemente

criteriaQuery .orderBy (criteriaBuilder .asc (carreras .get (“nombre” )));

TypedQuery <Carrera >query =em .createQuery (criteriaQuery ); returnquery .getResultList ();

Listado de carreras cuyo nombre contenga la cadena “pro”:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Desarrollo de aplicaciones web con Jakarta EE»

Представляем Вашему вниманию похожие книги на «Desarrollo de aplicaciones web con Jakarta EE» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Desarrollo de aplicaciones web con Jakarta EE»

Обсуждение, отзывы о книге «Desarrollo de aplicaciones web con Jakarta EE» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x