Commit ed4507a0 by María Hidalgo

Transacciones

parent 2a04addb
...@@ -68,7 +68,7 @@ public class Usuario implements Serializable { ...@@ -68,7 +68,7 @@ public class Usuario implements Serializable {
String clave; String clave;
// Viajes creados por el conductor // Viajes creados por el conductor
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
// @JoinColumn(name = "usuario_dni") // @JoinColumn(name = "usuario_dni")
List<Viaje> viajesComoConductor; List<Viaje> viajesComoConductor;
......
...@@ -61,7 +61,7 @@ public class Viaje { ...@@ -61,7 +61,7 @@ public class Viaje {
EstadoViaje estado; EstadoViaje estado;
// Lista de usuarios que son confirmados en un viaje // Lista de usuarios que son confirmados en un viaje
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER ) @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "confirmado_usuario_dni") @JoinColumn(name = "confirmado_usuario_dni")
public List<Usuario> usuariosConfirmados; public List<Usuario> usuariosConfirmados;
......
...@@ -26,7 +26,7 @@ public class RepositorioUsuarios { ...@@ -26,7 +26,7 @@ public class RepositorioUsuarios {
public void guardar(Usuario usuario) { public void guardar(Usuario usuario) {
em.persist(usuario); em.persist(usuario);
} }
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public void actualizarUsuario(Usuario usuario){ public void actualizarUsuario(Usuario usuario){
em.merge(usuario); em.merge(usuario);
} }
......
...@@ -36,6 +36,8 @@ public class RepositorioViajes { ...@@ -36,6 +36,8 @@ public class RepositorioViajes {
} }
// @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public List<Viaje> buscar(String origen, String destino, LocalDateTime fecha) { public List<Viaje> buscar(String origen, String destino, LocalDateTime fecha) {
List<Viaje> viajes = new ArrayList<>(); List<Viaje> viajes = new ArrayList<>();
// try { // try {
...@@ -51,7 +53,7 @@ public class RepositorioViajes { ...@@ -51,7 +53,7 @@ public class RepositorioViajes {
return viajes; return viajes;
} }
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public void actualizarViajes(Viaje viaje) { public void actualizarViajes(Viaje viaje) {
em.merge(viaje); em.merge(viaje);
} }
......
...@@ -12,6 +12,7 @@ import java.util.List; ...@@ -12,6 +12,7 @@ import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import es.ujaen.dae.carpoolingdae.entidades.Usuario; import es.ujaen.dae.carpoolingdae.entidades.Usuario;
...@@ -68,14 +69,14 @@ public class SistemaCarpooling { ...@@ -68,14 +69,14 @@ public class SistemaCarpooling {
* @return el objeto de la clase Viaje asociado * @return el objeto de la clase Viaje asociado
*/ */
public Optional<Usuario> loginUsuario(@NotBlank String dni, @NotBlank String clave) { public Optional<Usuario> loginUsuario(@NotBlank String dni, @NotBlank String clave) {
Optional<Usuario> usuarioLogin = repositorioUsuarios.buscar(dni) Optional<Usuario> usuarioLogin = repositorioUsuarios.buscar(dni)
.filter((cliente) -> cliente.claveValida(clave)); .filter((cliente) -> cliente.claveValida(clave));
return usuarioLogin; return usuarioLogin;
} }
@Transactional
public void agregarViaje(@NotNull Usuario conductor, @NotNull Viaje viaje) { public void agregarViaje(@NotNull Usuario conductor, @NotNull Viaje viaje) {
// Agregar el viaje al repositorio de viajes // Agregar el viaje al repositorio de viajes
repositorioViajes.guardarViaje(viaje); repositorioViajes.guardarViaje(viaje);
...@@ -87,7 +88,7 @@ public class SistemaCarpooling { ...@@ -87,7 +88,7 @@ public class SistemaCarpooling {
repositorioUsuarios.actualizarUsuario(conductor); repositorioUsuarios.actualizarUsuario(conductor);
} }
/** /**qqq2
* Buscar viaje * Buscar viaje
* *
* @param origen donde empieza el viaje * @param origen donde empieza el viaje
...@@ -97,6 +98,7 @@ public class SistemaCarpooling { ...@@ -97,6 +98,7 @@ public class SistemaCarpooling {
*/ */
public List<Viaje> buscarViajes(@NotBlank String origen, @NotBlank String destino, @NotNull LocalDateTime fecha) { public List<Viaje> buscarViajes(@NotBlank String origen, @NotBlank String destino, @NotNull LocalDateTime fecha) {
List<Viaje> listaViajes = repositorioViajes.buscar(origen,destino,fecha); List<Viaje> listaViajes = repositorioViajes.buscar(origen,destino,fecha);
...@@ -110,7 +112,7 @@ public class SistemaCarpooling { ...@@ -110,7 +112,7 @@ public class SistemaCarpooling {
* @param conductor el usuario conductor * @param conductor el usuario conductor
* @return lista de viajes pendientes del conductor * @return lista de viajes pendientes del conductor
*/ */
// @Transactional
public List<Viaje> obtenerViajesPendientesConductor(@NotNull Usuario conductor) { public List<Viaje> obtenerViajesPendientesConductor(@NotNull Usuario conductor) {
// Filtrar los viajes del conductor que aún no han sido realizados // Filtrar los viajes del conductor que aún no han sido realizados
return conductor.getViajesComoConductor().stream() return conductor.getViajesComoConductor().stream()
...@@ -124,15 +126,14 @@ public class SistemaCarpooling { ...@@ -124,15 +126,14 @@ public class SistemaCarpooling {
* *
* @param viaje al que se envía la solicitud * @param viaje al que se envía la solicitud
*/ */
@Transactional
public void enviarSolicitudViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero) { public void enviarSolicitudViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero) {
// Llamar a la función en viaje para enviar la solicitud // Llamar a la función en viaje para enviar la solicitud
viaje.enviarSolicitudParaSerPasajero(viaje, pasajero); viaje.enviarSolicitudParaSerPasajero(viaje, pasajero);
repositorioViajes.actualizarViajes(viaje); repositorioViajes.actualizarViajes(viaje);
} }
@Transactional
public void aceptarPasajeroViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero, public void aceptarPasajeroViaje(@NotNull Viaje viaje, @NotNull Usuario pasajero,
@NotNull Usuario conductor) { @NotNull Usuario conductor) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment