Merge pull request #2 from IUTInfoAix-R202-2022/dao
DAO JPA ajouté + DAO JDBC supprimé
This commit is contained in:
commit
8b2d37a8cd
@ -31,7 +31,7 @@ public interface DAO<T> {
|
||||
*
|
||||
* @param obj Objet à insérer dans la base
|
||||
*/
|
||||
T insert(T obj);
|
||||
boolean insert(T obj);
|
||||
|
||||
/**
|
||||
* Permet de mettre à jour les données d'un tuple dans la base à partir d'un
|
||||
|
@ -3,4 +3,6 @@ package fr.univ_amu.iut.dao;
|
||||
import fr.univ_amu.iut.model.Academie;
|
||||
|
||||
public interface DAOAcademie extends DAO<Academie>{
|
||||
|
||||
Academie getByCode(String code);
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
package fr.univ_amu.iut.dao;
|
||||
|
||||
public interface DAODiscipline extends DAO<DAODiscipline>{
|
||||
import fr.univ_amu.iut.model.Discipline;
|
||||
|
||||
public interface DAODiscipline extends DAO<Discipline>{
|
||||
}
|
||||
|
@ -1,6 +0,0 @@
|
||||
package fr.univ_amu.iut.dao;
|
||||
|
||||
import fr.univ_amu.iut.model.TypeActeur;
|
||||
|
||||
public interface DAOTypeActeur extends DAO<TypeActeur>{
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
package fr.univ_amu.iut.dao;
|
||||
|
||||
import fr.univ_amu.iut.model.TypeRessource;
|
||||
|
||||
public interface DAOTypeRessource extends DAO<TypeRessource> {
|
||||
}
|
@ -9,7 +9,5 @@ public interface DAOFactory {
|
||||
DAORegionAcademique createDAORegionAcademique();
|
||||
DAORessource createDAORessource();
|
||||
DAOThematique createDAOThematique();
|
||||
DAOTypeActeur createDAOTypeActeur();
|
||||
DAOTypeRessource createDAOTypeRessource();
|
||||
DAOUsage createDAOUsage();
|
||||
}
|
||||
|
@ -1,13 +1,11 @@
|
||||
package fr.univ_amu.iut.dao.factory;
|
||||
|
||||
import fr.univ_amu.iut.dao.jdbc.DAOFactoryJDBC;
|
||||
import fr.univ_amu.iut.dao.jpa.DAOFactoryJPA;
|
||||
|
||||
public class DAOFactoryProducer {
|
||||
public static DAOFactory getFactory(DAOType type) {
|
||||
return switch (type){
|
||||
case JPA -> new DAOFactoryJPA();
|
||||
case JDBC -> new DAOFactoryJDBC();
|
||||
default -> throw new IllegalArgumentException();
|
||||
};
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package fr.univ_amu.iut.dao.factory;
|
||||
|
||||
public enum DAOType {
|
||||
JPA,
|
||||
JDBC
|
||||
JPA
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
package fr.univ_amu.iut.dao.jdbc;
|
||||
|
||||
import fr.univ_amu.iut.dao.*;
|
||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
||||
|
||||
public class DAOFactoryJDBC implements DAOFactory {
|
||||
@Override
|
||||
public DAOAcademie createDAOAcademie() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOActeur createDAOActeur() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAODiscipline createDAODiscipline() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAORegionAcademique createDAORegionAcademique() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAORessource createDAORessource() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOThematique createDAOThematique() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOTypeActeur createDAOTypeActeur() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOTypeRessource createDAOTypeRessource() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOUsage createDAOUsage() {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
package fr.univ_amu.iut.dao.jdbc;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class DataAccessException extends RuntimeException {
|
||||
|
||||
public int errorCode;
|
||||
public String state;
|
||||
|
||||
public DataAccessException() {
|
||||
}
|
||||
|
||||
public DataAccessException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
public DataAccessException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
getCodeAndState(cause);
|
||||
}
|
||||
|
||||
public DataAccessException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
public DataAccessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
|
||||
super(message, cause, enableSuppression, writableStackTrace);
|
||||
}
|
||||
|
||||
private void getCodeAndState(Throwable cause) {
|
||||
if (cause instanceof SQLException) {
|
||||
errorCode = ((SQLException) cause).getErrorCode();
|
||||
state = ((SQLException) cause).getSQLState();
|
||||
} else {
|
||||
errorCode = -1;
|
||||
state = cause.getMessage();
|
||||
}
|
||||
}
|
||||
|
||||
public int getErrorCode() {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass().getName() + '[' + errorCode + ',' + state + "]: " + getLocalizedMessage();
|
||||
}
|
||||
}
|
@ -1,78 +0,0 @@
|
||||
package fr.univ_amu.iut.dao.jdbc;
|
||||
|
||||
import fr.univ_amu.iut.dao.jdbc.rowmappers.RowMapper;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class ResultSetIterator<T> implements Iterator<T> {
|
||||
|
||||
private ResultSet rs;
|
||||
private PreparedStatement ps;
|
||||
private Connection connection;
|
||||
private RowMapper<T> rowMapper;
|
||||
private String sql;
|
||||
|
||||
public ResultSetIterator(Connection connection, String sql, RowMapper<T> rowMapper) {
|
||||
assert connection != null;
|
||||
assert sql != null;
|
||||
this.connection = connection;
|
||||
this.sql = sql;
|
||||
this.rowMapper = rowMapper;
|
||||
}
|
||||
|
||||
public void init() {
|
||||
try {
|
||||
ps = connection.prepareStatement(sql);
|
||||
rs = ps.executeQuery();
|
||||
|
||||
} catch (SQLException e) {
|
||||
close();
|
||||
throw new DataAccessException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
if (ps == null) {
|
||||
init();
|
||||
}
|
||||
try {
|
||||
boolean hasMore = rs.next();
|
||||
if (!hasMore) {
|
||||
close();
|
||||
}
|
||||
return hasMore;
|
||||
} catch (SQLException e) {
|
||||
close();
|
||||
throw new DataAccessException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void close() {
|
||||
try {
|
||||
rs.close();
|
||||
try {
|
||||
ps.close();
|
||||
} catch (SQLException e) {
|
||||
//nothing we can do here
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
//nothing we can do here
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public T next() {
|
||||
try {
|
||||
return rowMapper.mapRow(rs, 1);
|
||||
} catch (SQLException e) {
|
||||
close();
|
||||
throw new DataAccessException(e);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package fr.univ_amu.iut.dao.jdbc;
|
||||
|
||||
import fr.univ_amu.iut.dao.jdbc.rowmappers.RowMapper;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.util.Spliterators;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
public class ResultSetStreamer {
|
||||
public static <T> Stream<T> stream(final Connection connection,
|
||||
final String sql,
|
||||
final RowMapper<T> rowMapper) {
|
||||
return StreamSupport
|
||||
.stream(Spliterators.spliteratorUnknownSize(
|
||||
new ResultSetIterator<>(connection, sql, rowMapper), 0), false);
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package fr.univ_amu.iut.dao.jdbc.rowmappers;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public interface RowMapper<T> {
|
||||
T mapRow(ResultSet rs, int rowNum) throws SQLException;
|
||||
}
|
34
src/main/java/fr/univ_amu/iut/dao/jpa/DAOAcademieJPA.java
Normal file
34
src/main/java/fr/univ_amu/iut/dao/jpa/DAOAcademieJPA.java
Normal file
@ -0,0 +1,34 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAOAcademie;
|
||||
import fr.univ_amu.iut.model.Academie;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAOAcademieJPA extends DAOBaseClassJPA<Academie> implements DAOAcademie {
|
||||
|
||||
public DAOAcademieJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Academie> findAll() {
|
||||
TypedQuery<Academie> query = entityManager.createNamedQuery("Academie.findAll", Academie.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Academie getById(int id) {
|
||||
throw new UnsupportedOperationException("use getByCode()");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Academie getByCode(String code) {
|
||||
TypedQuery<Academie> query = entityManager.createNamedQuery("Academie.findByCode", Academie.class);
|
||||
query.setParameter("acaCode", code);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOActeurJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOActeurJPA.java
Normal file
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAOActeur;
|
||||
import fr.univ_amu.iut.model.Acteur;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAOActeurJPA extends DAOBaseClassJPA<Acteur> implements DAOActeur {
|
||||
|
||||
public DAOActeurJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Acteur> findAll() {
|
||||
TypedQuery<Acteur> query = entityManager.createNamedQuery("Acteur.findAll", Acteur.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Acteur getById(int id) {
|
||||
TypedQuery<Acteur> query = entityManager.createNamedQuery("Acteur.findById", Acteur.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
55
src/main/java/fr/univ_amu/iut/dao/jpa/DAOBaseClassJPA.java
Normal file
55
src/main/java/fr/univ_amu/iut/dao/jpa/DAOBaseClassJPA.java
Normal file
@ -0,0 +1,55 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAO;
|
||||
import jakarta.persistence.EntityManager;
|
||||
|
||||
|
||||
// Helper class to reduce code duplication
|
||||
public abstract class DAOBaseClassJPA<T> implements DAO<T> {
|
||||
|
||||
protected EntityManager entityManager;
|
||||
|
||||
public DAOBaseClassJPA(EntityManager entityManager) {
|
||||
this.entityManager = entityManager;
|
||||
}
|
||||
|
||||
public boolean insert(T etudiant) {
|
||||
try{
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.persist(etudiant);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean update(T obj) {
|
||||
try {
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.merge(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean delete(T obj) {
|
||||
try {
|
||||
entityManager.getTransaction().begin();
|
||||
entityManager.remove(obj);
|
||||
entityManager.getTransaction().commit();
|
||||
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAODisciplineJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAODisciplineJPA.java
Normal file
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAODiscipline;
|
||||
import fr.univ_amu.iut.model.Discipline;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAODisciplineJPA extends DAOBaseClassJPA<Discipline> implements DAODiscipline {
|
||||
|
||||
public DAODisciplineJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Discipline> findAll() {
|
||||
TypedQuery<Discipline> query = entityManager.createNamedQuery("Discipline.findAll", Discipline.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Discipline getById(int id) {
|
||||
TypedQuery<Discipline> query = entityManager.createNamedQuery("Discipline.findById", Discipline.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
@ -2,51 +2,55 @@ package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.*;
|
||||
import fr.univ_amu.iut.dao.factory.DAOFactory;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityManagerFactory;
|
||||
import jakarta.persistence.Persistence;
|
||||
|
||||
public class DAOFactoryJPA implements DAOFactory {
|
||||
|
||||
private EntityManager entityManager;
|
||||
|
||||
public EntityManager getEntityManager() {
|
||||
if(entityManager == null){
|
||||
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gestionUsagesPU");
|
||||
entityManager = entityManagerFactory.createEntityManager();
|
||||
}
|
||||
return entityManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOAcademie createDAOAcademie() {
|
||||
return null;
|
||||
return new DAOAcademieJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOActeur createDAOActeur() {
|
||||
return null;
|
||||
return new DAOActeurJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAODiscipline createDAODiscipline() {
|
||||
return null;
|
||||
return new DAODisciplineJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAORegionAcademique createDAORegionAcademique() {
|
||||
return null;
|
||||
return new DAORegionAcademiqueJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAORessource createDAORessource() {
|
||||
return null;
|
||||
return new DAORessourceJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOThematique createDAOThematique() {
|
||||
return null;
|
||||
return new DAOThematiqueJPA(getEntityManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOTypeActeur createDAOTypeActeur() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOTypeRessource createDAOTypeRessource() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DAOUsage createDAOUsage() {
|
||||
return null;
|
||||
return new DAOUsageJPA(getEntityManager());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAORegionAcademique;
|
||||
import fr.univ_amu.iut.model.RegionAcademique;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAORegionAcademiqueJPA extends DAOBaseClassJPA<RegionAcademique> implements DAORegionAcademique {
|
||||
|
||||
public DAORegionAcademiqueJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RegionAcademique> findAll() {
|
||||
TypedQuery<RegionAcademique> query = entityManager.createNamedQuery("RegionAcademique.findAll", RegionAcademique.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegionAcademique getById(int id) {
|
||||
TypedQuery<RegionAcademique> query = entityManager.createNamedQuery("RegionAcademique.findById", RegionAcademique.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAORessourceJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAORessourceJPA.java
Normal file
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAORessource;
|
||||
import fr.univ_amu.iut.model.Ressource;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAORessourceJPA extends DAOBaseClassJPA<Ressource> implements DAORessource {
|
||||
|
||||
public DAORessourceJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Ressource> findAll() {
|
||||
TypedQuery<Ressource> query = entityManager.createNamedQuery("Ressource.findAll", Ressource.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Ressource getById(int id) {
|
||||
TypedQuery<Ressource> query = entityManager.createNamedQuery("Ressource.findById", Ressource.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOThematiqueJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOThematiqueJPA.java
Normal file
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAOThematique;
|
||||
import fr.univ_amu.iut.model.Thematique;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAOThematiqueJPA extends DAOBaseClassJPA<Thematique> implements DAOThematique {
|
||||
|
||||
public DAOThematiqueJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Thematique> findAll() {
|
||||
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findAll", Thematique.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Thematique getById(int id) {
|
||||
TypedQuery<Thematique> query = entityManager.createNamedQuery("Thematique.findById", Thematique.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java
Normal file
29
src/main/java/fr/univ_amu/iut/dao/jpa/DAOUsageJPA.java
Normal file
@ -0,0 +1,29 @@
|
||||
package fr.univ_amu.iut.dao.jpa;
|
||||
|
||||
import fr.univ_amu.iut.dao.DAOUsage;
|
||||
import fr.univ_amu.iut.model.Usage;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
// NOT JPA. No idea how to achieve it else
|
||||
public class DAOUsageJPA extends DAOBaseClassJPA<Usage> implements DAOUsage {
|
||||
|
||||
public DAOUsageJPA(EntityManager entityManager) {
|
||||
super(entityManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Usage> findAll() {
|
||||
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findAll", Usage.class);
|
||||
return query.getResultList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Usage getById(int id) {
|
||||
TypedQuery<Usage> query = entityManager.createNamedQuery("Usage.findById", Usage.class);
|
||||
query.setParameter("numEt", id);
|
||||
return query.getSingleResult();
|
||||
}
|
||||
}
|
@ -4,7 +4,10 @@ import jakarta.persistence.*;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Academie.findAll", query = "SELECT p FROM Academie p"),
|
||||
@NamedQuery(name = "Academie.findByCode", query = "SELECT p FROM Academie p WHERE p.code = :acaCode"),
|
||||
})
|
||||
@Entity
|
||||
public class Academie {
|
||||
private final static HashMap<String, Academie> INSTANCES = new HashMap<>();
|
||||
|
@ -18,12 +18,10 @@ public class Acteur {
|
||||
@Embedded
|
||||
Coordonees coordonees;
|
||||
|
||||
@ManyToOne(cascade = CascadeType.ALL)
|
||||
TypeActeur typeActeur;
|
||||
String typeActeur;
|
||||
|
||||
public Acteur() {
|
||||
coordonees = new Coordonees();
|
||||
typeActeur = new TypeActeur();
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
@ -43,7 +41,7 @@ public class Acteur {
|
||||
}
|
||||
|
||||
public String getTypeActeur() {
|
||||
return typeActeur.nom;
|
||||
return typeActeur;
|
||||
}
|
||||
|
||||
public void setNom(String nom) {
|
||||
@ -55,7 +53,7 @@ public class Acteur {
|
||||
}
|
||||
|
||||
public void setTypeActeur(String typeActeur) {
|
||||
this.typeActeur.setNom(typeActeur);
|
||||
this.typeActeur = typeActeur;
|
||||
}
|
||||
|
||||
public int getNumero() {
|
||||
|
@ -5,8 +5,14 @@ import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.Transient;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
public class Discipline {
|
||||
|
||||
private static List<Discipline> INSTANCES = new ArrayList<>();
|
||||
|
||||
@Transient
|
||||
public static Discipline Toutes = new Discipline("Toutes disciplines");
|
||||
@Transient
|
||||
@ -30,13 +36,29 @@ public class Discipline {
|
||||
String nom;
|
||||
|
||||
public Discipline() {
|
||||
|
||||
INSTANCES.add(this);
|
||||
}
|
||||
|
||||
Discipline(String nom) {
|
||||
this();
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
public static List<Discipline> toutes() {
|
||||
return INSTANCES;
|
||||
}
|
||||
|
||||
public static Discipline getById(int id){
|
||||
for(Discipline discipline : Discipline.toutes()) {
|
||||
if (discipline.id == id) return discipline;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getId(){
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getNom() {
|
||||
return nom;
|
||||
}
|
||||
|
@ -2,8 +2,14 @@ package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
public class RegionAcademique {
|
||||
|
||||
private static List<RegionAcademique> INSTANCES = new ArrayList<>();
|
||||
|
||||
@Transient
|
||||
public static RegionAcademique AuvergneRhoneAlpes = new RegionAcademique("Région académique Auvergne-Rhône-Alpes");
|
||||
@Transient
|
||||
@ -46,11 +52,23 @@ public class RegionAcademique {
|
||||
int id;
|
||||
String nom;
|
||||
|
||||
public RegionAcademique() {
|
||||
INSTANCES.add(this);
|
||||
}
|
||||
public RegionAcademique(String nom) {
|
||||
this();
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
public RegionAcademique() {
|
||||
public static List<RegionAcademique> toutes(){
|
||||
return INSTANCES;
|
||||
}
|
||||
|
||||
public static RegionAcademique getById(int id){
|
||||
for(RegionAcademique regionAcademique : INSTANCES){
|
||||
if(regionAcademique.id == id)return regionAcademique;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
|
@ -1,17 +1,21 @@
|
||||
package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Ressource.findAll", query = "SELECT p FROM Ressource p"),
|
||||
@NamedQuery(name = "Ressource.findById", query = "SELECT p FROM Ressource p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Ressource {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
|
||||
String nomRessource;
|
||||
|
||||
@ManyToOne
|
||||
TypeRessource typeRessource;
|
||||
URL lienRessource;
|
||||
@ -32,4 +36,8 @@ public class Ressource {
|
||||
public URL getLienRessource() {
|
||||
return lienRessource;
|
||||
}
|
||||
|
||||
public String getNomRessource() {
|
||||
return nomRessource;
|
||||
}
|
||||
}
|
||||
|
@ -1,29 +0,0 @@
|
||||
package fr.univ_amu.iut.model;
|
||||
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.Id;
|
||||
|
||||
@Entity
|
||||
public class TypeActeur {
|
||||
@Id
|
||||
@GeneratedValue
|
||||
int id;
|
||||
String nom;
|
||||
|
||||
public TypeActeur(String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
public TypeActeur() {
|
||||
|
||||
}
|
||||
|
||||
public String getNom() {
|
||||
return nom;
|
||||
}
|
||||
|
||||
public void setNom(String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
}
|
@ -3,9 +3,12 @@ package fr.univ_amu.iut.model;
|
||||
import jakarta.persistence.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@NamedQueries({
|
||||
@NamedQuery(name = "Usage.findAll", query = "SELECT p FROM Usage p"),
|
||||
@NamedQuery(name = "Usage.findById", query = "SELECT p FROM Usage p WHERE p.id = :id"),
|
||||
})
|
||||
@Entity
|
||||
public class Usage {
|
||||
@Id
|
||||
@ -24,8 +27,8 @@ public class Usage {
|
||||
@Enumerated(EnumType.STRING)
|
||||
Niveau niveau;
|
||||
|
||||
@OneToMany(cascade = CascadeType.ALL)
|
||||
List<Academie> academies = new ArrayList<>();
|
||||
@OneToOne
|
||||
Academie academie;
|
||||
|
||||
@OneToMany(cascade = CascadeType.ALL)
|
||||
List<Ressource> ressources = new ArrayList<>();
|
||||
@ -78,15 +81,8 @@ public class Usage {
|
||||
this.niveau = niveau;
|
||||
}
|
||||
|
||||
public List<Academie> getAcademies() {
|
||||
return academies;
|
||||
}
|
||||
|
||||
public void addAcademies(Academie ... academies) {
|
||||
this.academies.addAll(List.of(academies));
|
||||
}
|
||||
public void addAcademies(Collection<? extends Academie> academies){
|
||||
this.academies.addAll(academies);
|
||||
public Academie getAcademie() {
|
||||
return academie;
|
||||
}
|
||||
|
||||
public List<Ressource> getRessources() {
|
||||
|
@ -7,9 +7,9 @@
|
||||
|
||||
<properties>
|
||||
<!-- database connection properties -->
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:derby:memory:usageBD;create=true"/>
|
||||
<property name="jakarta.persistence.jdbc.user" value=""/>
|
||||
<property name="jakarta.persistence.jdbc.password" value=""/>
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/devapp"/>
|
||||
<property name="jakarta.persistence.jdbc.user" value="root"/>
|
||||
<property name="jakarta.persistence.jdbc.password" value="azerty123"/>
|
||||
|
||||
<property name="eclipselink.ddl-generation.output-mode" value="database"/>
|
||||
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||
|
Loading…
Reference in New Issue
Block a user