first commit with existing project files
This commit is contained in:
@@ -14,7 +14,7 @@ services:
|
|||||||
- mysql_data:/var/lib/mysql
|
- mysql_data:/var/lib/mysql
|
||||||
|
|
||||||
app:
|
app:
|
||||||
build: ./hibernate-projet
|
build: ./hibernate-project
|
||||||
container_name: app
|
container_name: app
|
||||||
depends_on:
|
depends_on:
|
||||||
- mysql
|
- mysql
|
||||||
|
|||||||
@@ -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
|
WORKDIR /app
|
||||||
|
|
||||||
COPY pom.xml .
|
COPY pom.xml .
|
||||||
|
|
||||||
RUN mvn dependency:go-offline -B
|
RUN mvn dependency:go-offline -B
|
||||||
COPY src ./src
|
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
|
WORKDIR /app
|
||||||
COPY --from=build /app/target/hibernate-projet-1.0-SNAPSHOT.jar app.jar
|
|
||||||
|
COPY --from=build /app/target/hibernate-project-1.0-SNAPSHOT.jar app.jar
|
||||||
|
|
||||||
ENTRYPOINT [ "java", "-jar", "app.jar" ]
|
ENTRYPOINT [ "java", "-jar", "app.jar" ]
|
||||||
|
|
||||||
# java -jar app.jar
|
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
<transformers>
|
<transformers>
|
||||||
<transformer
|
<transformer
|
||||||
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
||||||
<mainClass>com.exemple.App</mainClass>
|
<mainClass>com.humanbooster.App</mainClass>
|
||||||
</transformer>
|
</transformer>
|
||||||
</transformers>
|
</transformers>
|
||||||
</configuration>
|
</configuration>
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
<archive>
|
<archive>
|
||||||
<manifest>
|
<manifest>
|
||||||
<addClasspath>true</addClasspath>
|
<addClasspath>true</addClasspath>
|
||||||
<mainClass>com.exemple.App</mainClass>
|
<mainClass>com.humanbooster.App</mainClass>
|
||||||
</manifest>
|
</manifest>
|
||||||
</archive>
|
</archive>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
@@ -24,9 +24,11 @@ public class App {
|
|||||||
SessionFactory sessionFactory = metadata.buildSessionFactory();
|
SessionFactory sessionFactory = metadata.buildSessionFactory();
|
||||||
System.out.println("Connexion réussie !");
|
System.out.println("Connexion réussie !");
|
||||||
|
|
||||||
User user = new User("Bob", "bob@example.com", List.of(
|
User user = new User("Bob", "bob@example.com", null);
|
||||||
new Article("Article 1", "Contenu de l'article 1", null),
|
|
||||||
new Article("Article 2", "Contenu de l'article 2", 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));
|
UserService userService = new UserService(new UserDao(sessionFactory));
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ import com.humanbooster.model.Article;
|
|||||||
import org.hibernate.Session;
|
import org.hibernate.Session;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
|
|
||||||
public class ArticleDto extends GenericDaoImpl<Article,Long> {
|
public class ArticleDao extends GenericDaoImpl<Article,Long> {
|
||||||
|
|
||||||
public ArticleDto(SessionFactory sessionFactory, Class<Article> entityClass) {
|
public ArticleDao(SessionFactory sessionFactory) {
|
||||||
super(sessionFactory, entityClass);
|
super(sessionFactory, Article.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Article findByAuthor(String author) {
|
public Article findByAuthor(String author) {
|
||||||
@@ -7,7 +7,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public abstract class GenericDaoImpl<T, ID> implements GenericDao<T, ID> {
|
public abstract class GenericDaoImpl<T, ID> implements GenericDao<T, ID> {
|
||||||
|
|
||||||
private final Class<T> entityClass;
|
protected final Class<T> entityClass;
|
||||||
protected SessionFactory sessionFactory;
|
protected SessionFactory sessionFactory;
|
||||||
|
|
||||||
public GenericDaoImpl(SessionFactory sessionFactory, Class<T> entityClass) {
|
public GenericDaoImpl(SessionFactory sessionFactory, Class<T> entityClass) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import org.hibernate.SessionFactory;
|
|||||||
public class UserDao extends GenericDaoImpl<User,Long> {
|
public class UserDao extends GenericDaoImpl<User,Long> {
|
||||||
|
|
||||||
public UserDao(SessionFactory sessionFactory) {
|
public UserDao(SessionFactory sessionFactory) {
|
||||||
super(sessionFactory, entityClass);
|
super(sessionFactory, User.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public User findByEmail(String email) {
|
public User findByEmail(String email) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.humanbooster.model;
|
package com.humanbooster.model;
|
||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
public class Article {
|
public class Article {
|
||||||
@@ -19,7 +20,9 @@ public class Article {
|
|||||||
@JoinColumn(name="author_id", nullable=false)
|
@JoinColumn(name="author_id", nullable=false)
|
||||||
private User author;
|
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.title = title;
|
||||||
this.content = content;
|
this.content = content;
|
||||||
this.author = author;
|
this.author = author;
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ public class User {
|
|||||||
@OneToMany(mappedBy="author", cascade= CascadeType.ALL, fetch = FetchType.LAZY)
|
@OneToMany(mappedBy="author", cascade= CascadeType.ALL, fetch = FetchType.LAZY)
|
||||||
private List<Article> articles;
|
private List<Article> articles;
|
||||||
|
|
||||||
|
public User() {}
|
||||||
|
|
||||||
public User(String name, String email, List<Article> articles) {
|
public User(String name, String email, List<Article> articles) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.email = email;
|
this.email = email;
|
||||||
|
|||||||
@@ -1,43 +1,43 @@
|
|||||||
package com.humanbooster.service;
|
package com.humanbooster.service;
|
||||||
|
|
||||||
import com.humanbooster.dao.ArticleDto;
|
import com.humanbooster.dao.ArticleDao;
|
||||||
import com.humanbooster.model.Article;
|
import com.humanbooster.model.Article;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class ArticleService {
|
public class ArticleService {
|
||||||
|
|
||||||
public final ArticleDto articleDto;
|
public final ArticleDao articleDao;
|
||||||
|
|
||||||
public ArticleService(ArticleDto articleDto) {
|
public ArticleService(ArticleDao articleDao) {
|
||||||
this.articleDto = articleDto;
|
this.articleDao = articleDao;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createArticle(Article article) {
|
public void createArticle(Article article) {
|
||||||
articleDto.create(article);
|
articleDao.create(article);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getArticleById(Long id) {
|
public void getArticleById(Long id) {
|
||||||
articleDto.read(id);
|
articleDao.read(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateArticle(Article article) {
|
public void updateArticle(Article article) {
|
||||||
articleDto.update(article);
|
articleDao.update(article);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteArticle(Long id) {
|
public void deleteArticle(Long id) {
|
||||||
articleDto.delete(id);
|
articleDao.delete(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Article> getAllArticles() {
|
public List<Article> getAllArticles() {
|
||||||
return articleDto.findAll();
|
return articleDao.findAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Article findArticleByAuthor(String author) {
|
public Article findArticleByAuthor(String author) {
|
||||||
return articleDto.findByAuthor(author);
|
return articleDao.findByAuthor(author);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Article findArticleByTitle(String title) {
|
public Article findArticleByTitle(String title) {
|
||||||
return articleDto.findByTitle(title);
|
return articleDao.findByTitle(title);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user