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); } }