This commit is contained in:
Vincent Guillet
2025-05-23 10:38:13 +02:00
parent 4cc46d7ac3
commit 153380f541
5 changed files with 72 additions and 4 deletions

View File

@@ -30,6 +30,13 @@
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>3.1.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
@@ -72,6 +79,59 @@
<artifactId>reflections</artifactId> <artifactId>reflections</artifactId>
<version>0.10.2</version> <version>0.10.2</version>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.17</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.17.0</version>
</dependency>
<!-- JAX-RS (Jersey) -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<!-- H2 Database (pour tests, sinon MySQL/PostgreSQL) -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.2.224</version>
<scope>runtime</scope>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>11.0.25</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>11.0.25</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
</dependency>
</dependencies> </dependencies>

View File

@@ -28,7 +28,7 @@ public class App {
SessionFactory sessionFactory; SessionFactory sessionFactory;
if (HibernateConfig.LOCAL) sessionFactory = HibernateConfig.getSessionFactory(); if (HibernateConfig.isLocalEnvironment()) sessionFactory = HibernateConfig.getSessionFactory();
else { else {
StandardServiceRegistry registry = new StandardServiceRegistryBuilder() StandardServiceRegistry registry = new StandardServiceRegistryBuilder()

View File

@@ -7,13 +7,13 @@ import org.reflections.Reflections;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
public class HibernateConfig { public class HibernateConfig {
private static final SessionFactory sessionFactory; private static final SessionFactory sessionFactory;
public static final boolean LOCAL = true; private static final boolean LOCAL = true;
private static String url; private static String url;
private static String username; private static String username;
private static String password; private static String password;
static { static {
if (LOCAL) { if (LOCAL) {
@@ -46,5 +46,9 @@ public class HibernateConfig {
public static SessionFactory getSessionFactory() { public static SessionFactory getSessionFactory() {
return sessionFactory; return sessionFactory;
} }
public static boolean isLocalEnvironment() {
return LOCAL;
}
} }

View File

@@ -47,7 +47,7 @@ public abstract class GenericDaoImpl<T, ID> implements GenericDao<T, ID> {
public void delete(ID id) { public void delete(ID id) {
try (Session session = sessionFactory.openSession()) { try (Session session = sessionFactory.openSession()) {
session.beginTransaction(); session.beginTransaction();
T entity = session.get(entityClass, id); T entity = session.find(entityClass, id);
if (entity != null) session.remove(entity); if (entity != null) session.remove(entity);
session.getTransaction().commit(); session.getTransaction().commit();
} }

View File

@@ -1,6 +1,7 @@
package com.humanbooster.model; package com.humanbooster.model;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@@ -11,7 +12,10 @@ public class User {
@GeneratedValue (strategy = GenerationType.IDENTITY) @GeneratedValue (strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@NotNull
private String name; private String name;
@NotNull
private String email; private String email;
@OneToMany(mappedBy="author", cascade = CascadeType.ALL, orphanRemoval = true) @OneToMany(mappedBy="author", cascade = CascadeType.ALL, orphanRemoval = true)