diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
index 8db42f37389c22286aa1bcfc1419fff60b57bf60..9da182f1351c3b54b662f264c903530caa7f2b4d 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/GenericDao.java
@@ -6,6 +6,8 @@ public interface GenericDao<T> {
 
     T create(T elem);
 
+    T update(T elem);
+
     T find(String key);
 
     T find(Long id);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java
index cbe49ad0c649b9c87016a03c337d42a871a74870..3e165951c7aac7b447052ba4bb20bc520822ecdd 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/category/CategoryDAOBean.java
@@ -30,6 +30,14 @@ public class CategoryDAOBean implements CategoryDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public Category update(Category elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public Category find(String key) {
         final var query = em.createNamedQuery("Categoria.findByName", Categoria.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
index 4d5fae0e766a87d804ffc8da51046cc24d9fa95e..38e6606bf444a9387e62a1fca7caf57717398141 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/checker/CheckCheckerDAOBean.java
@@ -30,6 +30,14 @@ public class CheckCheckerDAOBean implements CheckCheckerDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public CheckChecker update(CheckChecker elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public CheckChecker find(String key) {
         final var query = em.createNamedQuery("VerificacionChecker.findByFact", VerificacionChecker.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
index 00110bf63092d637f6a19d737e256032143bf34f..2a7cf48ae877ed24ff15ad946a37e9666e43a359 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/check/mechanism/CheckMechanismDAOBean.java
@@ -30,6 +30,14 @@ public class CheckMechanismDAOBean implements CheckMechanismDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public CheckMechanism update(CheckMechanism elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public CheckMechanism find(String key) {
         final var query = em.createNamedQuery("VerificacionMecanismo.findByFact", VerificacionMecanismo.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
index 0f10a3bfa1c79212a1d48d70858ac2ae083f17b2..499c7927a9daff9343f9c487e7056393e5c79729 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/fact/FactDAOBean.java
@@ -33,6 +33,14 @@ public class FactDAOBean implements FactDaoLocal {
         return MyMapper.INSTANCE.convert(hecho);
     }
 
+    @Override
+    public Fact update(Fact elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public Fact find(String key) {
         return find(Long.parseLong(key));
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/mechanism/MechanismDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/mechanism/MechanismDAOBean.java
index 4460a98eb25601943e23431f527256ae95979997..e5df8dd5babb417afdc963e8af510f278fe49777 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/mechanism/MechanismDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/mechanism/MechanismDAOBean.java
@@ -30,6 +30,14 @@ public class MechanismDAOBean implements MechanismDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public Mechanism update(Mechanism elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public Mechanism find(String key) {
         final var query = em.createNamedQuery("Calificacion.findByName", Mecanismo.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
index df8e0b882158170c05ce811c52ec19e32802b225..fec24a8c182df435e22e757e7d88e5fe81a9a0cf 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/role/RoleDAOBean.java
@@ -30,6 +30,14 @@ public class RoleDAOBean implements RoleDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public Role update(Role elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public Role find(String key) {
         final var query = em.createNamedQuery("Rol.findByName", Rol.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
index c7114ecd1963cd9b2508b9253b5722b27f6ab7a9..77d1d54b2f39a0cc29bf49be0b0d94cd7fb55995 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/score/ScoreDAOBean.java
@@ -30,6 +30,14 @@ public class ScoreDAOBean implements ScoreDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public Score update(Score elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public Score find(String key) {
         final var query = em.createNamedQuery("Calificacion.findByValue", Calificacion.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
index 2597912fbdfc22b87f932b609f5d24979a2329eb..adaa23e829b9c31eddecdb9a2f74f146efc937e4 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/state/StateDAOBean.java
@@ -30,6 +30,14 @@ public class StateDAOBean implements StateDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public State update(State elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public State find(String key) {
         final var query = em.createNamedQuery("Estado.findByValue", Estado.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/statehistory/StateHistoryDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/statehistory/StateHistoryDAOBean.java
index 7a7011058463cb9a0e02078f55101822bc22ae1a..8c760cd8f8078d54daf9076a874d5810e0a22d52 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/statehistory/StateHistoryDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/statehistory/StateHistoryDAOBean.java
@@ -30,6 +30,14 @@ public class StateHistoryDAOBean implements StateHistoryDaoLocal {
         return MyMapper.INSTANCE.convert(r);
     }
 
+    @Override
+    public StateHistory update(StateHistory elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public StateHistory find(String key) {
         final var query = em.createNamedQuery("TransicionEstado.findByState", TransicionEstado.class);
diff --git a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
index 30c0215dadedaf5153983128fb8f68732852d9a5..3193af1060576cb3ec93e7552685f4fb2e67a31f 100644
--- a/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
+++ b/central-db/src/main/java/uy/edu/fing/tse/central/db/dao/user/UserDAOBean.java
@@ -30,6 +30,14 @@ public class UserDAOBean implements UserDaoLocal {
         return MyMapper.INSTANCE.convert(newUser);
     }
 
+    @Override
+    public User update(User elem) {
+        final var r = MyMapper.INSTANCE.convert(elem);
+        final var then = em.merge(r);
+        em.flush();
+        return MyMapper.INSTANCE.convert(then);
+    }
+
     @Override
     public User find(String mail) {
         final var query = em.createNamedQuery("Usuario.findByMail", Usuario.class);