(Jakarta Persistence

Total Page:16

File Type:pdf, Size:1020Kb

(Jakarta Persistence Plan de ce cours Présentation de JPA JPA Entité Gestionnaire d’entités (Jakarta Persistence API) Compléments sur les entités : pour Jakarta EE identité, associations, héritage Requêtes, JPQL ITU - Université Côte d’Azur Modification en volume Richard Grin Concurrence Version O 1.37 – 10/3/20 Adaptation à une base préexistante Bibliographie R. Grin JPA page 2 1 2 JPA Spécification pour la persistance des objets Java dans une base de données (BD) relationnelle ORM, Object-Relational mapping, fait Présentation de JPA correspondre le monde relationnel et le monde des objets Au-dessus de JDBC ; donc un driver JDBC du SGBD doit être installé sur le serveur d’application ou dans l’application Ce support étudie JPA dans Jakarta EE mais JPA peut aussi être utilisé avec Java SE R. Grin JPA page 3 R. Grin JPA page 4 3 4 Principales propriétés de JPA Fournisseur de persistance Des appels simples permettent de gérer la L’utilisation de JPA nécessite un fournisseur persistance, par exemple « persist(objet) » de persistance qui implémente les classes et pour rendre un objet persistant interfaces de l’API Les données de la base de données relationnelle EclipseLink et Hibernate sont des fournisseurs sont traitées avec une vision objet, en utilisant les de persistance classes Java entités R. Grin JPA page 5 R. Grin JPA page 6 5 6 1 Entité Exemple d’entité – identificateur et attributs Classe dont les instances peuvent être persistantes @Entity Clé primaire Annotée par @Entity public class Departement { dans la base – obligatoire « entité » peut aussi désigner une instance de @Id classe entité @GeneratedValue valeur générée private Long id; automatiquement – optionnel private String nom; Par défaut tous les attributs private String lieu; sont persistants R. Grin JPA page 7 R. Grin JPA page 8 7 8 Exemple d’entité – constructeurs Exemple d’entité – une association Un département - Autre bout de l’association plusieurs employés dans classe Employe public Departement() { } Obligatoire @OneToMany(mappedBy="dept") private List<Employe> employes = public Departement(String nom, new ArrayList<>(); Comment l’association sera String lieu) { traduite dans classe Employe ? this.nom = nom; public List<Employe> getEmployes() { this.lieu = lieu; return employes; } } public void addEmploye(Employe emp) { employes.add(emp); } R. Grin JPA page 9 R. Grin JPA page 10 9 10 Fichiers de configuration XML persistence.xml <persistence version= "2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"> META-INF/persistence.xml : informations <persistence-unit name="employes" 1 unité par BD sur les connexions aux BDs utilisées pour transaction-type="JTA"> conserver les entités <jta-data-source>java:app/jdbc/b1</jta-data-source> Contient le nom JNDI de la source de données <properties> nom JNDI dans le serveur d’application <property sur le serveur, mais pas les caractéristiques name="javax.persistence.schema-generation-action" de la BD, même pas son emplacement value="create"/> tables créées si n’existent pas Des informations plus techniques peuvent être <property name="eclipselink.logging.level" données par des propriétés, par exemple pour value="FINE"/> propriété non standard du fournisseur de dire si les ordres SQL générés par JPA sont </properties> persistance ; requêtes SQL générées par enregistrés dans les logs du serveur </persistence-unit> JPA enregistrées dans les logs du serveur </persistence> R. Grin JPA page 11 R. Grin JPA page 12 11 12 2 Définition d’une source de données Exemple 1Nom JNDI dans persistence.xml Soit directement dans le serveur d’application @DataSourceDefinition( (pas standardisé) name = "java:app/jdbc/b1", className = "com.mysql.cj.jdbc.MysqlDataSource", Soit dans l’application, portNumber = 3306, de façon standard serverName = "localhost", — par @DataSourceDefinition user = "root", password = "fflkq7dlfj", databaseName = "db1", Nom de la BD — dans un fichier de configuration standard properties= {"characterEncoding=UTF-8", dans le SGBD (web.xml par exemple) "useUnicode=true",…}) ou d’une façon particulière au serveur @Stateless Propriétés d’application (glassfish-resources.xml par public class MonEJB { ... } non standards exemple) R. Grin JPA page 13 R. Grin JPA page 14 13 14 Exemple 2 Gestionnaire d’entités (EM) <data-source> <description>Pour MySQL</description> Interface <name>java:app/jdbc/b1</name> javax.persistence.EntityManager <class-name>com.mysql.cj.jdbc.MysqlDataSource</class-name> <server-name>machin.unice.fr</server-name> Interlocuteur principal pour le développeur <port-number>3306</port-number> <database-name>testDB</database-name> Fournit les méthodes pour gérer les entités : <user>toto</user> les rendre persistantes <password>fs78jiia</password> Avantage par rapport à <property> @DataSourceDefinition : supprimer leurs valeurs dans la BD <name>useUnicode</name> le mot de passe peut être retrouver leurs valeurs dans la BD <value>true</value> modifié au déploiement </property> … ... <!– Autres propriétés --> </data-source> Pourquoi un avantage ? R. Grin JPA page 15 R. Grin JPA page 16 15 16 Contexte de persistance Exemple 1 nom dans persistence.xml ; em.persist(entité) @Stateless optionnel si une seule unité rend entité persistant sera géré par em public class DepartementFacade { Toute modification apportée à entité sera @PersistenceContext(unitName = "employes") enregistrée dans la BD par em au moment du private EntityManager em; EM injecté par le container commit public void create(Dept dept) { L’ensemble des entités gérées par un EM em.persist(dept); s’appelle un contexte de persistance (CP) dept.setLieu("Paris"); enregistré dans la BD ? } Transaction démarrée EM CP ... } au début de la méthode Pourquoi ? et fermée à la fin R. Grin JPA page 17 R. Grin JPA page 18 17 18 3 Exemple 2 Que fait cette méthode ? public void augmenter(String poste, int prime) { String requete = "SELECT e FROM Employe e " Pas du SQL, c’est du JPQL ; + " WHERE e.poste = :poste"; Employe est une classe Java Query query = em.createQuery(requete); query.setParameter("poste", poste); Entité List<Employe> liste = query.getResultList(); for (Employe e : liste) { e.setSalaire(e.getSalaire() + prime); } Est-ce que les augmentations } seront dans la base de données ? Oui, car les employés récupérés dans la BD sont ajoutés automatiquement par em dans le CP R. Grin JPA page 19 R. Grin JPA page 20 19 20 Conditions pour une classe entité Types d’accès à une valeur persistante Constructeur sans paramètre protected ou JPA peut accéder à la valeur d’un attribut de 2 public façons Attribut qui représente la clé primaire dans la BD par la variable d’instance ; accès « par champ » Pas final par les getters et setters ; Méthodes ou champs persistants pas final accès « par propriété » La classe ne doit pas nécessairement implémenter Serializable mais c’est requis dans certaines circonstances R. Grin JPA page 21 R. Grin JPA page 22 21 22 Exemple Quel type d’accès choisir ? Accès par champ : L’accès par propriété oblige à ajouter des getters @Id et des setters pour tous les attributs private int id; Choisir plutôt l’accès par champ Accès par propriété : @Id public int getId() { ... } Accès par champ ou par propriété, quelle est votre préférence ? R. Grin JPA page 23 R. Grin JPA page 24 23 24 4 Attributs persistants Cycle de vie d’une instance d’entité Par défaut, tous les attributs d’une entité sont L’instance peut être persistants nouvelle : créée mais pas gérée par un EM Exception : attribut avec un champ gérée par un EM (méthode persist, ou transient (mot-clé Java lié à la sérialisation) instance récupérée dans la BD) ou annoté par @Transient détachée : a une identité dans la BD mais n’est plus gérée par un EM supprimée : gérée par un EM ; données seront supprimées dans la BD au commit (méthode remove) R. Grin JPA page 25 R. Grin JPA page 26 25 26 Table de la base de données Exemple Dans les cas simples, une classe une table @Entity nom de la table = nom de la classe public class Departement { instances sauvegardées dans la table noms des colonnes = noms des attributs Departement (ou DEPARTEMENT) Par exemple, la classe Departement @Entity correspond à la table Departement avec les @Table(name = "DEPT") colonnes id, nom, lieu public class Departement { Convention plutôt que configuration pour JPA @Column pour changer le nom ou les attributs d’une colonne dans la table R. Grin JPA page 27 R. Grin JPA page 28 27 28 Types persistants Types « basic » Types primitifs (int, double,…) ou enveloppes Un attribut persistant peut être d’un des types de type primitifs (Integer,…) suivants : String, BigInteger, BigDecimal « basic » Types de l’API « time » Java 8 (LocalDate,…), « Embeddable » Date et Calendar (de java.util ; doivent être collection d’éléments de type « basic » ou annoté par @Temporal), Date, Time et Embeddable Timestamp (de java.sql ; peu utilisés) Énumérations Tableaux de byte, Byte, char, Character Plus généralement Serializable (sauvegardé comme un tout dans la base) R. Grin JPA page 29 R. Grin JPA page 30 29 30 5 Exemples Classe Embeddable private LocalDateTime dateOperationBancaire; Classe dont les données sont insérées dans // par défaut le numéro est enregistré dans la BD les lignes de la table d’une entité @Enumerated(EnumType.STRING) private TypeEmploye typeEmploye; R. Grin JPA page 31 R. Grin JPA page 32 31 32 Exemple Collection d’éléments @Embeddable public class Adresse { Pas besoin d’id Collection d’éléments de type basic ou private int numero; puisque les données embeddable
Recommended publications
  • Project Dependencies Project Transitive Dependencies
    9/8/2020 Dependencies – Project Dependencies Project Dependencies compile The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application: GroupId ArtifactId Version Type Licenses org.onap.policy.drools-pdp base 1.7.1-SNAPSHOT tar.gz - org.onap.policy.drools-pdp feature-active-standby-management 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-controller-logging 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-distributed-locking 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-eelf 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-healthcheck 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-lifecycle 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-mdc-filters 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-pooling-dmaap 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-session-persistence 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-state-management 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp feature-test-transaction 1.7.1-SNAPSHOT zip - org.onap.policy.drools-pdp policy-management 1.7.1-SNAPSHOT zip - Project Transitive Dependencies The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies. compile The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application: GroupId ArtifactId Version Classifier Type Licenses antlr antlr 2.7.7 - jar BSD License
    [Show full text]
  • Jakarta Enhancement Guide (V6.0) Table of Contents
    Jakarta Enhancement Guide (v6.0) Table of Contents Maven . 3 Ant . 5 Command Line . 7 Runtime Enhancement . 9 Programmatic API . 10 Enhancement Contract Details . 11 Persistable . 11 Byte-Code Enhancement Myths . 12 Cloning of enhanced classes . 12 Serialisation of enhanced classes. 12 Decompilation. 13 DataNucleus requires that all Jakarta entities implement Persistable and Detachable. Rather than requiring that a user add this themself, we provide an enhancer that will modify your compiled classes to implement all required methods. This is provided in datanucleus-core.jar. • The use of this interface means that you get transparent persistence, and your classes always remain your classes; ORM tools that use a mix of reflection and/or proxies are not totally transparent. • DataNucleus' use of Persistable provides transparent change tracking. When any change is made to an object the change creates a notification to DataNucleus allowing it to be optimally persisted. ORM tools that dont have access to such change tracking have to use reflection to detect changes. The performance of this process will break down as soon as you read a large number of objects, but modify just a handful, with these tools having to compare all object states for modification at transaction commit time. • OpenJPA requires a similar bytecode enhancement process also, and EclipseLink and Hibernate both allow it as an option since they also now see the benefits of this approach over use of proxies and reflection. In the DataNucleus bytecode enhancement contract there are 3 categories of classes. These are Entity, PersistenceAware and normal classes. The Meta-Data (XML or annotations) defines which classes fit into these categories.
    [Show full text]
  • Licensing Information User Manual Release 21C (21.1) F37966-01 March 2021
    Oracle® Zero Downtime Migration Licensing Information User Manual Release 21c (21.1) F37966-01 March 2021 Introduction This Licensing Information document is a part of the product or program documentation under the terms of your Oracle license agreement and is intended to help you understand the program editions, entitlements, restrictions, prerequisites, special license rights, and/or separately licensed third party technology terms associated with the Oracle software program(s) covered by this document (the "Program(s)"). Entitled or restricted use products or components identified in this document that are not provided with the particular Program may be obtained from the Oracle Software Delivery Cloud website (https://edelivery.oracle.com) or from media Oracle may provide. If you have a question about your license rights and obligations, please contact your Oracle sales representative, review the information provided in Oracle’s Software Investment Guide (http://www.oracle.com/us/ corporate/pricing/software-investment-guide/index.html), and/or contact the applicable Oracle License Management Services representative listed on http:// www.oracle.com/us/corporate/license-management-services/index.html. Licensing Information Third-Party Notices and/or Licenses About the Third-Party Licenses The third party licensing information in Oracle Database Licensing Information User Manual, Third-Party Notices and/or Licenses and Open Source Software License Text, applies to Oracle Zero Downtime Migration. The third party licensing information included in the license notices provided with Oracle Linux applies to Oracle Zero Downtime Migration. Open Source or Other Separately Licensed Software Required notices for open source or other separately licensed software products or components distributed in Oracle Zero Downtime Migration are identified in the following table along with the applicable licensing information.
    [Show full text]
  • Metro User Guide Metro User Guide Table of Contents
    Metro User Guide Metro User Guide Table of Contents Preface .............................................................................................................................. x 1. Introduction to Metro ....................................................................................................... 1 1.1. Required Software ................................................................................................ 1 1.2. What is WSIT? .................................................................................................... 1 1.2.1. Bootstrapping and Configuration ................................................................... 2 1.2.2. Message Optimization Technology ................................................................ 3 1.2.3. Reliable Messaging Technology .................................................................... 4 1.2.4. Security Technology ................................................................................... 4 1.3. How Metro Relates to .NET Windows Communication Foundation (WCF) ...................... 5 1.4. Metro Specifications ............................................................................................. 5 1.4.1. Bootstrapping and Configuration Specifications ............................................... 7 1.4.2. Message Optimization Specifications ............................................................. 8 1.4.3. Reliable Messaging Specifications ............................................................... 10 1.4.4. Security Specifications
    [Show full text]
  • Hitachi Ops Center V.10.2.0
    Hitachi Ops Center V. 10.2.0 Open Source Software Packages Contact Information: Hitachi Ops Center Project Manager Hitachi Vantara LLC 2535 Augustine Drive Santa Clara, California 95054 Name of Product/Product Version License Component aesh 2.4 Apache License, Version 2.0 aesh Extensions 1.8 Apache License, Version 2.0 aesh Readline 2.0 Apache License, Version 2.0 aesh Terminal API 2.0 Apache License, Version 2.0 "Java Concurrency in Practice" 1.0-redhat- Creative Commons Attribution 2.5 Generic book annotations 4 @angular-builders/custom- 8.0.0-RC.0 The MIT License webpack @angular-devkit/build-angular 0.800.0-rc.2 The MIT License @angular-devkit/build-angular 0.803.25 The MIT License @angular-devkit/core 7.3.8 The MIT License @angular-devkit/schematics 7.3.8 The MIT License @angular/animations 7.2.15 The MIT License @angular/animations 8.2.14 The MIT License Name of Product/Product Version License Component @angular/cdk 7.3.7 The MIT License @angular/cli 8.0.0 The MIT License @angular/cli 8.3.25 The MIT License @angular/common 7.2.15 The MIT License @angular/common 8.2.14 The MIT License @angular/compiler 7.2.15 The MIT License @angular/compiler 8.2.14 The MIT License @angular/compiler-cli 8.2.14 The MIT License @angular/core 7.2.15 The MIT License @angular/forms 7.2.13 The MIT License @angular/forms 7.2.15 The MIT License @angular/forms 8.2.14 The MIT License @angular/forms 8.2.7 The MIT License @angular/language-service 8.2.14 The MIT License @angular/platform-browser 7.2.15 The MIT License Name of Product/Product Version License
    [Show full text]
  • Jakarta Persistence 3.0 Specification Document
    Jakarta Persistence Jakarta Persistence Team, https://projects.eclipse.org/projects/ee4j.jpa 3.0, September 08, 2020: Table of Contents Eclipse Foundation Specification License . 1 Disclaimers. 2 Scope . 3 1. Introduction . 4 1.1. Expert Group . 4 1.2. Document Conventions . 4 2. Entities. 6 2.1. The Entity Class . 6 2.2. Persistent Fields and Properties . 6 2.2.1. Example . 8 2.3. Access Type. 9 2.3.1. Default Access Type . 10 2.3.2. Explicit Access Type . 10 2.3.3. Access Type of an Embeddable Class . 11 2.3.4. Defaulted Access Types of Embeddable Classes and Mapped Superclasses . 11 2.4. Primary Keys and Entity Identity . 11 2.4.1. Primary Keys Corresponding to Derived Identities . 13 2.4.1.1. Specification of Derived Identities . 13 2.4.1.2. Mapping of Derived Identities . 14 2.4.1.3. Examples of Derived Identities . 14 2.5. Embeddable Classes . 25 2.6. Collections of Embeddable Classes and Basic Types . 26 2.7. Map Collections . 26 2.7.1. Map Keys . 27 2.7.2. Map Values . 27 2.8. Mapping Defaults for Non-Relationship Fields or Properties . 28 2.9. Entity Relationships . 28 2.10. Relationship Mapping Defaults . 30 2.10.1. Bidirectional OneToOne Relationships . 30 2.10.2. Bidirectional ManyToOne / OneToMany Relationships . 32 2.10.3. Unidirectional Single-Valued Relationships . 34 2.10.3.1. Unidirectional OneToOne Relationships . 34 2.10.3.2. Unidirectional ManyToOne Relationships . 35 2.10.4. Bidirectional ManyToMany Relationships . 36 2.10.5. Unidirectional Multi-Valued Relationships. 39 2.10.5.1.
    [Show full text]
  • 1Desk - Open Source Component Summary Report V1 (1).Xlsx
    1Desk - Open Source Component Summary Report v1 (1).xlsx Row Labels Licenses achilles Apache 2.0 activation CDDL 1.0, CDDL 1.1 activiti Apache 2.0 adal4j Apache 2.0 adapter Apache 2.0 akka Apache 2.0 all BSD 3 amqp Apache 2.0, GPL 2.0, Mozilla 1.1, Apache 2.0, GPL 2.0, Mozilla 2.0 android Apache 2.0 animal MIT annotations Apache 2.0, LGPL 3.0 ant Apache 2.0 antisamy BSD 2 antlr BSD, BSD 3 antlr4 BSD 3 apache Apache 2.0 apacheds Apache 2.0 archaius Apache 2.0 args4j MIT arpack_combined_all BSD 2 arq BSD 3 asm BSD, BSD 3 aspectjrt Eclipse 1.0 aspectjweaver Eclipse 1.0 assertj Apache 2.0 attoparser Apache 2.0 Confidential 8/3/2020 Page 1 1Desk - Open Source Component Summary Report v1 (1).xlsx avatica Apache 2.0 aws Apache 2.0 azure Apache 2.0, MIT backport Public Domain bamboo Apache 2.0 barchart BSD 2 bcel Apache 2.0 bcpkix Apache 2.0, Bouncy Castle License bcprov Apache 2.0, Bouncy Castle License bonecp Apache 2.0 bourbon MIT bsh Apache 2.0 btf Apache 2.0 byte Apache 2.0 c3p0 Eclipse 1.0, LGPL 2.1 caffeine Apache 2.0 cal10n MIT calcite Apache 2.0 cassandra Apache 2.0 cglib Apache 2.0 checker MIT checkstyle LGPL 2.1 cisco Suspected Commercial classmate Apache 2.0 classworlds Custom client MIT closure Apache 2.0 coffee MIT Confidential 8/3/2020 Page 2 1Desk - Open Source Component Summary Report v1 (1).xlsx commonj.sdo BSD 3, Eclipse 1.0 commons Apache 2.0, Apache 2.0, BSD 3, BSD 3 compress Apache 2.0 concurrentlinkedhashmap Apache 2.0 config Apache 2.0 converter Apache 2.0 core BSD 3 curator Apache 2.0 daemon Apache 2.0, Common Public
    [Show full text]
  • Project Dependencies Project Transitive Dependencies
    9/8/2020 Dependencies – Project Dependencies Project Dependencies compile The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application: GroupId ArtifactId Version Type Licenses ch.qos.logback logback- 1.2.3 jar Eclipse Public License - v 1.0 GNU Lesser General classic Public License ch.qos.logback logback- 1.2.3 jar Eclipse Public License - v 1.0 GNU Lesser General core Public License org.onap.policy.apex- policy-model 2.4.1- jar - pdp.model SNAPSHOT org.projectlombok lombok 1.18.12 jar The MIT License org.slf4j slf4j-api 1.7.30 jar MIT License org.slf4j slf4j-ext 1.7.30 jar MIT License test The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application: GroupId ArtifactId Version Type Licenses com.h2database h2 1.4.200 jar MPL 2.0 or EPL 1.0 junit junit 4.13 jar Eclipse Public License 1.0 org.assertj assertj-core 3.16.1 jar Apache License, Version 2.0 org.awaitility awaitility 4.0.3 jar Apache 2.0 org.onap.policy.apex-pdp.core core-engine 2.4.1- jar - SNAPSHOT org.onap.policy.apex-pdp.core core-infrastructure 2.4.1- jar - SNAPSHOT org.onap.policy.apex-pdp.plugins.plugins- plugins-executor- 2.4.1- jar - executor mvel SNAPSHOT Project Transitive Dependencies The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies.
    [Show full text]
  • Jakarta Tools Guide (V6.0) Table of Contents
    Jakarta Tools Guide (v6.0) Table of Contents Maven Plugin. 2 pom.xml Integration . 2 Enhancement and SchemaTool . 4 Eclipse Plugin. 6 Plugin Installation . 6 Plugin configuration . 6 Plugin configuration - General . 6 Plugin configuration - Enhancer . 7 Plugin configuration - SchemaTool . 8 Enabling DataNucleus support . 9 Defining 'persistence.xml' . 10 Enhancing the classes . 11 Generating your database schema . 12 Netbeans. 13 Requirements . 13 Maven : Working with a DataNucleus Maven Project. 13 Setting up NetBeans for DataNucleus ANT use. 16 Ant : Setting up a new project. 18 Ant : Enhancing the classes . 23 Ant : Building the project . 24 Conclusion . 26 Gradle Plugin. 27 Eclipse Dali. 28 The DataNucleus project provides a few tools to assist in your use of DataNucleus and the Jakarta Persistence API. 1 Maven Plugin Apache Maven is a project management and build tool that is quite common in organisations. Using DataNucleus and Jakarta Persistence with Maven is simple since the DataNucleus jars, Jakarta Persistence API jar and Maven plugin are present in the Maven central repository, so you don’t need to define any repository to find the artifacts. pom.xml Integration The first thing to do is identify which artifacts are required for your project, and updating your pom.xml accordingly. Firstly, you will need the following for compile time building against the Jakarta Persistence API. <project> ... <dependencies> <dependency> <groupId>org.datanucleus</groupId> <artifactId>jakarta.persistence</artifactId> <version>3.0.0</version> </dependency> </dependencies> ... </project> If using any DataNucleus API extensions in your code then you will also need datanucleus-core at compile time. At runtime you will need the DataNucleus artifacts present also, so this becomes 2 <project> ..
    [Show full text]
  • Project Dependencies Project Transitive Dependencies
    9/8/2020 Dependencies – Project Dependencies Project Dependencies compile The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application: GroupId ArtifactId Version Type Licenses ch.qos.logback logback- 1.2.3 jar Eclipse Public License - v 1.0 GNU Lesser General classic Public License ch.qos.logback logback- 1.2.3 jar Eclipse Public License - v 1.0 GNU Lesser General core Public License org.onap.policy.apex- basic-model 2.4.1- jar - pdp.model SNAPSHOT org.projectlombok lombok 1.18.12 jar The MIT License org.slf4j slf4j-api 1.7.30 jar MIT License org.slf4j slf4j-ext 1.7.30 jar MIT License test The following is a list of test dependencies for this project. These dependencies are only required to compile and run unit tests for the application: GroupId ArtifactId Version Type Licenses com.h2database h2 1.4.200 jar MPL 2.0 or EPL 1.0 junit junit 4.13 jar Eclipse Public License 1.0 org.assertj assertj-core 3.16.1 jar Apache License, Version 2.0 org.awaitility awaitility 4.0.3 jar Apache 2.0 org.postgresql postgresql 42.2.14 jar BSD-2-Clause Project Transitive Dependencies The following is a list of transitive dependencies for this project. Transitive dependencies are the dependencies of the project dependencies. compile The following is a list of compile dependencies for this project. These dependencies are required to compile and run the application: GroupId ArtifactId Version Type Licenses com.google.code.findbugs jsr305 3.0.2 jar The Apache Software License, Version 2.0
    [Show full text]
  • Jakarta Query Guide (V6.0) Table of Contents
    Jakarta Query Guide (v6.0) Table of Contents Query API . 2 setFirstResult(), setMaxResults(). 2 setHint() . 2 setParameter(). 3 getResultList() . 3 getSingleResult(). 3 executeUpdate() . 4 setFlushMode() . 4 setLockMode(). 4 Large Result Sets : Loading Results at Commit(). 4 Result Set : Caching of Results. 5 Large Result Sets : Size . 5 RDBMS : Result Set Type. 5 RDBMS : Result Set Control . 6 JPQL . 7 SELECT Syntax . 7 FROM Clause . 8 Fetched Fields . 11 WHERE clause (filter) . 11 GROUP BY/HAVING clauses . 11 ORDER BY clause . 12 Fields/Properties . 13 Operators . 13 Literals . 14 Parameters. 14 CASE expressions . 15 JPQL Functions . 15 Collection Fields . 30 Map Fields . 30 Subqueries. 30 Specify candidates to query over . 31 Range of Results . 32 Query Result . 32 Query Execution. 34 Named Query . 35 JPQL : SQL Generation for RDBMS. 36 JPQL DELETE Queries . 37 JPQL UPDATE Queries . 37 JPQL Syntax Strictness . 38 JPQL Syntax BNF Notation. 38 Criteria . 43 Creating a Criteria query . 43 JPQL equivalent of the Criteria query. 43 Criteria API : Result clause. 44 Criteria API : FROM clause joins. 44 Criteria API : WHERE clause . 44 Criteria API : Ordering . 46 Criteria API : Parameters . 47 Criteria API : Subqueries . ..
    [Show full text]
  • Jakarta EE – Present and Future
    Jakarta EE – Present and Future Michael P. Redlich Senior Research Technician [email protected] @mpredli Jakarta EE • Java EE transitioned from JCP to Eclipse Foundation as Jakarta EE • Open governance, open source, open compatibility testing • Well defined specification process, clear IP flow, vendor-neutral open collaboration, level playing field • Key stakeholders maintained if not expanded including Oracle, IBM, Payara and Pivotal • Community participation and contribution key https://jakarta.ee Jakarta EE Evolution EJB 3, JPA, Servlet, CMP, JSF, JAXB, JSP, EJB, JCA JAX-WS JMS JAX-WS J2E J2E J2E Java EE JPE E E E 5 1.2 1.3 1.4 Profiles, CDI, WebSocket, JAX-RS, JSON, HTTP/2, SSE, Bean Concurrency, Security, Open source Validation Batch, pruning pruning governance Java EE Java EE Java EE Jakarta 6 7 8 EE 8 Namespace To be scoped transition by community Jakarta Jakarta EE 9 EE 10 Jakarta EE 8 At a Glance • Web Standards Alignment • HTTP/2, Server-Sent Events, JSON Binding, JSON Pointer, JSON Patch • CDI Alignment • CDI 2, Faces managed bean pruning, injecting Faces artifacts, CDI support in Persistence • Simplicity • Security, EJB pruning • Java SE Alignment • Repeatable annotations, Date-Time API, streams, completable futures • Jakarta Faces, Jakarta Persistence, Jakarta REST, Bean Validation Jakarta Servlet 4 • Principal goal to support HTTP/2 • Request/response multiplexing over single connection • Multiple streams, stream prioritization • Server push • Binary framing • Header compression • Most of it done without major API changes Jakarta JSON Binding • API to marshal/un-marshal POJOs to/from JSON • Very similar to Jakarta XML Binding in the XML world • Default mapping of classes to JSON • Annotations to customize default mappings • @JsonbProperty, @JsonbTransient • Provides Jakarta REST a built-in way to support “application/json” for POJOs • Providers already supported non–standard binding APIs JSON Binding Example @GET ..
    [Show full text]