Création d'un projet JPA
1. Un projet JPA avec Java SE
1.1. Les pré-requis
Dans cet article on va voir différents aspect de JPA en développant un projet simple en s'appuyant au technologies suivantes:
- maven >= 3.0
- JPA 2.1
- Hibernate
- H2
Dans cet exemple, on va utiliser utiliserons Maven pour configurer nos dépendances requises. On vu que JPA n'est qu'une spécification et pour l'implémenter Il existe beaucoup d'implémentations gratuites disponibles comme EclipseLink, Hibernate, etc... . Dans notre exemple on va utiliser Hibernate pour l'implémentation de JPA et comme base de données on utilisera MySQL.
Pour commencer, Créons d'abord un projet maven simple. On va créer un projet en utilisant un archétype de démarrage (voir un autre tuto pour cette création).
.....
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.omara.javaExemples</groupId> <artifactId>jpa-exemple</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>jpa-exemple</name> <url>http://ocamil.com</url> <properties> <java.version>1.8</java.version> <hibernate.version>4.3.6.Final</hibernate.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- JPA --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${hibernate.version}</version> </dependency> <!-- For connection pooling --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${hibernate.version}</version> </dependency> <!-- Database --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.31</version> </dependency> <!-- Test --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> <exclusions> <exclusion> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId> <version>1.3</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> <compilerArgument>-Xlint:all</compilerArgument> <showWarnings>true</showWarnings> <showDeprecation>true</showDeprecation> </configuration> </plugin> </plugins> </build> </project>
....
(à suivre)..