diff --git a/docker-compose.yml b/docker-compose.yml
index f66f690..6a7ab7d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -14,7 +14,7 @@ services:
- mysql_data:/var/lib/mysql
app:
- build: ./hibernate-projet
+ build: ./hibernate-project
container_name: app
depends_on:
- mysql
diff --git a/hibernate-project/Dockerfile b/hibernate-project/Dockerfile
index 1c59bed..62402bb 100644
--- a/hibernate-project/Dockerfile
+++ b/hibernate-project/Dockerfile
@@ -1,16 +1,19 @@
-FROM maven:3.9.6-eclipse-temurin-17 AS build
+FROM maven:3.9.6-eclipse-temurin-21 AS build
WORKDIR /app
COPY pom.xml .
+
RUN mvn dependency:go-offline -B
COPY src ./src
-RUN mvn package -DskipTests
-FROM eclipse-temurin:17-jre-alpine
+RUN mvn clean package -DskipTests
+
+
+FROM eclipse-temurin:21-jre-alpine
+
WORKDIR /app
-COPY --from=build /app/target/hibernate-projet-1.0-SNAPSHOT.jar app.jar
-ENTRYPOINT [ "java", "-jar", "app.jar" ]
-# java -jar app.jar
+COPY --from=build /app/target/hibernate-project-1.0-SNAPSHOT.jar app.jar
+ENTRYPOINT [ "java", "-jar", "app.jar" ]
diff --git a/hibernate-project/pom.xml b/hibernate-project/pom.xml
index 4dfb7b6..5b3ca69 100644
--- a/hibernate-project/pom.xml
+++ b/hibernate-project/pom.xml
@@ -87,7 +87,7 @@
- com.exemple.App
+ com.humanbooster.App
@@ -122,7 +122,7 @@
true
- com.exemple.App
+ com.humanbooster.App
diff --git a/hibernate-project/src/main/java/com/humanbooster/App.java b/hibernate-project/src/main/java/com/humanbooster/App.java
index a7b514c..ee856d2 100644
--- a/hibernate-project/src/main/java/com/humanbooster/App.java
+++ b/hibernate-project/src/main/java/com/humanbooster/App.java
@@ -24,9 +24,11 @@ public class App {
SessionFactory sessionFactory = metadata.buildSessionFactory();
System.out.println("Connexion réussie !");
- User user = new User("Bob", "bob@example.com", List.of(
- new Article("Article 1", "Contenu de l'article 1", null),
- new Article("Article 2", "Contenu de l'article 2", null)
+ User user = new User("Bob", "bob@example.com", null);
+
+ user.setArticles(List.of(
+ new Article("Article 1", "Contenu de l'article 1", user),
+ new Article("Article 2", "Contenu de l'article 2", user)
));
UserService userService = new UserService(new UserDao(sessionFactory));
diff --git a/hibernate-project/src/main/java/com/humanbooster/dao/ArticleDto.java b/hibernate-project/src/main/java/com/humanbooster/dao/ArticleDao.java
similarity index 84%
rename from hibernate-project/src/main/java/com/humanbooster/dao/ArticleDto.java
rename to hibernate-project/src/main/java/com/humanbooster/dao/ArticleDao.java
index 5353347..ed38847 100644
--- a/hibernate-project/src/main/java/com/humanbooster/dao/ArticleDto.java
+++ b/hibernate-project/src/main/java/com/humanbooster/dao/ArticleDao.java
@@ -4,10 +4,10 @@ import com.humanbooster.model.Article;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
-public class ArticleDto extends GenericDaoImpl {
+public class ArticleDao extends GenericDaoImpl {
- public ArticleDto(SessionFactory sessionFactory, Class entityClass) {
- super(sessionFactory, entityClass);
+ public ArticleDao(SessionFactory sessionFactory) {
+ super(sessionFactory, Article.class);
}
public Article findByAuthor(String author) {
diff --git a/hibernate-project/src/main/java/com/humanbooster/dao/GenericDaoImpl.java b/hibernate-project/src/main/java/com/humanbooster/dao/GenericDaoImpl.java
index adf2a06..4ea7972 100644
--- a/hibernate-project/src/main/java/com/humanbooster/dao/GenericDaoImpl.java
+++ b/hibernate-project/src/main/java/com/humanbooster/dao/GenericDaoImpl.java
@@ -7,7 +7,7 @@ import java.util.List;
public abstract class GenericDaoImpl implements GenericDao {
- private final Class entityClass;
+ protected final Class entityClass;
protected SessionFactory sessionFactory;
public GenericDaoImpl(SessionFactory sessionFactory, Class entityClass) {
diff --git a/hibernate-project/src/main/java/com/humanbooster/dao/UserDao.java b/hibernate-project/src/main/java/com/humanbooster/dao/UserDao.java
index a01eb6d..122f982 100644
--- a/hibernate-project/src/main/java/com/humanbooster/dao/UserDao.java
+++ b/hibernate-project/src/main/java/com/humanbooster/dao/UserDao.java
@@ -7,7 +7,7 @@ import org.hibernate.SessionFactory;
public class UserDao extends GenericDaoImpl {
public UserDao(SessionFactory sessionFactory) {
- super(sessionFactory, entityClass);
+ super(sessionFactory, User.class);
}
public User findByEmail(String email) {
diff --git a/hibernate-project/src/main/java/com/humanbooster/model/Article.java b/hibernate-project/src/main/java/com/humanbooster/model/Article.java
index b33c235..ba83824 100644
--- a/hibernate-project/src/main/java/com/humanbooster/model/Article.java
+++ b/hibernate-project/src/main/java/com/humanbooster/model/Article.java
@@ -1,6 +1,7 @@
package com.humanbooster.model;
import jakarta.persistence.*;
+import org.jetbrains.annotations.NotNull;
@Entity
public class Article {
@@ -19,7 +20,9 @@ public class Article {
@JoinColumn(name="author_id", nullable=false)
private User author;
- public Article (String titre, String content, User author){
+ public Article() {}
+
+ public Article (String title, String content, User author){
this.title = title;
this.content = content;
this.author = author;
diff --git a/hibernate-project/src/main/java/com/humanbooster/model/User.java b/hibernate-project/src/main/java/com/humanbooster/model/User.java
index fd561a6..5248903 100644
--- a/hibernate-project/src/main/java/com/humanbooster/model/User.java
+++ b/hibernate-project/src/main/java/com/humanbooster/model/User.java
@@ -17,6 +17,8 @@ public class User {
@OneToMany(mappedBy="author", cascade= CascadeType.ALL, fetch = FetchType.LAZY)
private List articles;
+ public User() {}
+
public User(String name, String email, List articles) {
this.name = name;
this.email = email;
diff --git a/hibernate-project/src/main/java/com/humanbooster/service/ArticleService.java b/hibernate-project/src/main/java/com/humanbooster/service/ArticleService.java
index 703c7ae..a2278d1 100644
--- a/hibernate-project/src/main/java/com/humanbooster/service/ArticleService.java
+++ b/hibernate-project/src/main/java/com/humanbooster/service/ArticleService.java
@@ -1,43 +1,43 @@
package com.humanbooster.service;
-import com.humanbooster.dao.ArticleDto;
+import com.humanbooster.dao.ArticleDao;
import com.humanbooster.model.Article;
import java.util.List;
public class ArticleService {
- public final ArticleDto articleDto;
+ public final ArticleDao articleDao;
- public ArticleService(ArticleDto articleDto) {
- this.articleDto = articleDto;
+ public ArticleService(ArticleDao articleDao) {
+ this.articleDao = articleDao;
}
public void createArticle(Article article) {
- articleDto.create(article);
+ articleDao.create(article);
}
public void getArticleById(Long id) {
- articleDto.read(id);
+ articleDao.read(id);
}
public void updateArticle(Article article) {
- articleDto.update(article);
+ articleDao.update(article);
}
public void deleteArticle(Long id) {
- articleDto.delete(id);
+ articleDao.delete(id);
}
public List getAllArticles() {
- return articleDto.findAll();
+ return articleDao.findAll();
}
public Article findArticleByAuthor(String author) {
- return articleDto.findByAuthor(author);
+ return articleDao.findByAuthor(author);
}
public Article findArticleByTitle(String title) {
- return articleDto.findByTitle(title);
+ return articleDao.findByTitle(title);
}
}