Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Alvaro Ordóñez Romero
/
DAE-aha00026-aor00039
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
2241a322
authored
Nov 09, 2023
by
Alvaro Ordóñez Romero
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Modificación UsuarioRepository
parent
bd910a28
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
6 deletions
src/main/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepository.java
src/main/java/com/carpooling/carpoolingaoraha/repositorios/UsuarioRepository.java
View file @
2241a322
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
package
com
.
carpooling
.
carpoolingaoraha
.
repositorios
;
import
com.carpooling.carpoolingaoraha.entidades.Reserva
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
com.carpooling.carpoolingaoraha.entidades.Usuario
;
import
com.carpooling.carpoolingaoraha.entidades.Viaje
;
import
jakarta.persistence.EntityManager
;
import
jakarta.persistence.PersistenceContext
;
import
org.springframework.cache.annotation.CacheEvict
;
import
org.springframework.cache.annotation.Cacheable
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.data.jpa.repository.JpaRepository
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.function.Function
;
import
java.util.function.Function
;
public
interface
UsuarioRepository
extends
JpaRepository
<
Usuario
,
String
>
{
@Repository
Usuario
findByDNI
(
String
dni
);
@Transactional
(
propagation
=
Propagation
.
REQUIRED
)
void
deleteByDNI
(
String
dni
);
public
class
UsuarioRepository
{
public
default
void
actualizarPuntuacion
(
Usuario
usuario
,
int
nuevaPuntuacion
)
{
@PersistenceContext
EntityManager
em
;
@Cacheable
(
"usuarios"
)
@Transactional
(
propagation
=
Propagation
.
SUPPORTS
,
readOnly
=
true
)
public
Optional
<
Usuario
>
buscar
(
String
DNI
){
return
Optional
.
ofNullable
(
em
.
find
(
Usuario
.
class
,
DNI
));
}
@CacheEvict
(
value
=
"usuarios"
,
key
=
"#usuario.DNI"
)
public
void
guardar
(
Usuario
usuario
){
em
.
persist
(
usuario
);
}
@CacheEvict
(
value
=
"usuarios"
,
key
=
"#usuario.DNI"
)
public
void
nuevaReserva
(
Usuario
usuario
,
Reserva
reserva
,
Viaje
viaje
){
em
.
persist
(
reserva
);
usuario
=
em
.
merge
(
usuario
);
usuario
.
ofrecerViaje
(
viaje
.
getOrigen
(),
viaje
.
getDestino
(),
viaje
.
getFechaSalida
(),
viaje
.
getnAsientos
(),
viaje
.
getPrecioAsiento
());
}
public
void
actualizarPuntuacion
(
Usuario
usuario
,
int
nuevaPuntuacion
)
{
// Carga el usuario desde la base de datos
// Carga el usuario desde la base de datos
Usuario
usuarioExistente
=
findById
(
usuario
.
getDNI
()).
orElse
(
null
);
Usuario
usuarioExistente
=
em
.
find
(
Usuario
.
class
,
usuario
.
getDNI
()
);
if
(
usuarioExistente
!=
null
)
{
if
(
usuarioExistente
!=
null
)
{
// Agrega la nueva puntuación
// Agrega la nueva puntuación
...
@@ -25,7 +57,9 @@ public interface UsuarioRepository extends JpaRepository<Usuario, String> {
...
@@ -25,7 +57,9 @@ public interface UsuarioRepository extends JpaRepository<Usuario, String> {
usuarioExistente
.
setPuntuacionMedia
(
puntuacionMedia
);
usuarioExistente
.
setPuntuacionMedia
(
puntuacionMedia
);
// Guarda el usuario actualizado (sin duplicar)
// Guarda el usuario actualizado (sin duplicar)
sav
e
(
usuarioExistente
);
em
.
merg
e
(
usuarioExistente
);
}
}
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment