Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Antonio Rueda
/
UJACoin
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
d3e90004
authored
Nov 10, 2020
by
Antonio Rueda
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Entidades mapeadas
parent
d2d6dce8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
94 additions
and
3 deletions
src/main/java/es/ujaen/dae/ujacoin/entidades/Cliente.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Cuenta.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Tarjeta.java
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Ingreso.java
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Movimiento.java
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Reintegro.java
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/TransferenciaEmitida.java
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/TransferenciaRecibida.java
src/main/java/es/ujaen/dae/ujacoin/entidades/Cliente.java
View file @
d3e90004
...
...
@@ -7,22 +7,32 @@ package es.ujaen.dae.ujacoin.entidades;
import
es.ujaen.dae.ujacoin.util.ExprReg
;
import
es.ujaen.dae.ujacoin.util.CodificadorMd5
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Optional
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.OneToMany
;
import
javax.persistence.Transient
;
import
javax.validation.constraints.Email
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Past
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
/**
* Cliente del banco virtual UjaCoin
* @author ajrueda
*/
public
class
Cliente
{
@Entity
public
class
Cliente
implements
Serializable
{
/** DNI del cliente*/
@Id
@Size
(
min
=
9
,
max
=
9
)
@Pattern
(
regexp
=
ExprReg
.
DNI
)
String
dni
;
/** Nombre completo */
...
...
@@ -36,6 +46,7 @@ public class Cliente {
@NotBlank
String
direccion
;
/** Teléfono */
@Size
(
min
=
9
,
max
=
13
)
@Pattern
(
regexp
=
ExprReg
.
TLF
)
String
tlf
;
...
...
@@ -46,11 +57,18 @@ public class Cliente {
String
clave
;
/** Tarjetas asociadas al cliente (no tiene por qué ser el titular */
@OneToMany
@JoinColumn
(
name
=
"cliente_dni"
)
List
<
Tarjeta
>
tarjetas
;
/** Cuentas asociadas al cliente */
@OneToMany
(
mappedBy
=
"titular"
)
List
<
Cuenta
>
cuentas
;
public
Cliente
()
{
}
public
Cliente
(
String
dni
,
String
nombre
,
LocalDate
fNacimiento
,
String
direccion
,
String
tlf
,
String
email
,
String
clave
)
{
this
.
dni
=
dni
;
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/Cuenta.java
View file @
d3e90004
...
...
@@ -13,17 +13,27 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.ManyToOne
;
import
javax.persistence.OneToMany
;
import
javax.persistence.Transient
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.PositiveOrZero
;
import
javax.validation.constraints.Size
;
/**
* Clase para representar cuentas de moneda virtual UjaCoin
* @author ajrueda
*/
@Entity
public
class
Cuenta
{
/** Número de cuenta */
@Id
@Size
(
min
=
10
,
max
=
10
)
@Pattern
(
regexp
=
ExprReg
.
NUM_CUENTA
)
String
num
;
/** Saldo de la cuenta en Ujacoins */
...
...
@@ -31,9 +41,12 @@ public class Cuenta {
float
saldo
;
/** Titular de la cuenta */
@NotNull
@ManyToOne
Cliente
titular
;
/** Lista de movimientos */
@OneToMany
@JoinColumn
(
name
=
"cuenta_num"
)
List
<
Movimiento
>
movimientos
;
public
Cuenta
(
String
num
,
Cliente
titular
)
{
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/Tarjeta.java
View file @
d3e90004
...
...
@@ -6,17 +6,24 @@
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
;
import
es.ujaen.dae.ujacoin.util.ExprReg
;
import
java.io.Serializable
;
import
java.time.LocalDate
;
import
javax.persistence.Entity
;
import
javax.persistence.Id
;
import
javax.validation.constraints.Future
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.Pattern
;
import
javax.validation.constraints.Size
;
/**
* Tarjeta para la realización de ingresos o reintegros en moneda real
* @author ajrueda
*/
public
class
Tarjeta
{
@Entity
public
class
Tarjeta
implements
Serializable
{
/** Número de tarjeta */
@Id
@Size
(
min
=
16
,
max
=
16
)
@Pattern
(
regexp
=
ExprReg
.
NUM_TARJETA
)
String
num
;
/** Titular de la tarjeta (puede ser diferente al cliente que la usa */
...
...
@@ -26,9 +33,13 @@ public class Tarjeta {
@Future
LocalDate
fechaCaducidad
;
/** Código de seguridad (CVC) */
@Size
(
min
=
3
,
max
=
3
)
@Pattern
(
regexp
=
ExprReg
.
CVC
)
String
cvc
;
public
Tarjeta
()
{
}
public
Tarjeta
(
String
num
,
String
titular
,
LocalDate
fechaCaducidad
,
String
cvc
)
{
this
.
num
=
num
;
this
.
titular
=
titular
;
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Ingreso.java
View file @
d3e90004
...
...
@@ -6,16 +6,23 @@
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
.
movimientos
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
javax.persistence.Entity
;
import
javax.persistence.ManyToOne
;
import
javax.validation.constraints.NotNull
;
/**
* Ingreso de dinero en cuenta desde una tarjeta
* @author ajrueda
*/
@Entity
public
class
Ingreso
extends
Movimiento
{
@NotNull
@ManyToOne
Tarjeta
tarjeta
;
public
Ingreso
()
{
}
/**
* Constructor del igreso
* @param tarjeta la tarjeta desde donde se transfiere el dinero
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Movimiento.java
View file @
d3e90004
...
...
@@ -5,7 +5,13 @@
*/
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
.
movimientos
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
import
javax.persistence.Entity
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Inheritance
;
import
javax.persistence.InheritanceType
;
import
javax.validation.constraints.PastOrPresent
;
import
javax.validation.constraints.Positive
;
...
...
@@ -13,7 +19,13 @@ import javax.validation.constraints.Positive;
* Clase que representa un movimiento en cuenta
* @author ajrueda
*/
public
abstract
class
Movimiento
{
@Entity
@Inheritance
(
strategy
=
InheritanceType
.
TABLE_PER_CLASS
)
public
abstract
class
Movimiento
implements
Serializable
{
@Id
@GeneratedValue
int
id
;
/** Fecha del movimiento */
@PastOrPresent
LocalDateTime
fechaHora
;
...
...
@@ -21,6 +33,9 @@ public abstract class Movimiento {
@Positive
float
importe
;
public
Movimiento
()
{
}
/**
* Constructor del movimiento
* @param importe el importe asociado al movimiento
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/Reintegro.java
View file @
d3e90004
...
...
@@ -6,15 +6,22 @@
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
.
movimientos
;
import
es.ujaen.dae.ujacoin.entidades.Tarjeta
;
import
javax.persistence.Entity
;
import
javax.persistence.ManyToOne
;
import
javax.validation.constraints.NotNull
;
/**
* Reintegro desde la cuenta a una tarjeta destino
* @author ajrueda
*/
@Entity
public
class
Reintegro
extends
Movimiento
{
@NotNull
@ManyToOne
Tarjeta
tarjeta
;
public
Reintegro
()
{
}
/**
* Constructor del reintegro
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/TransferenciaEmitida.java
View file @
d3e90004
...
...
@@ -6,15 +6,25 @@
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
.
movimientos
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.ManyToOne
;
import
javax.validation.constraints.NotNull
;
/**
* Transferencia emitida a otra cuenta
* @author ajrueda
*/
@Entity
public
class
TransferenciaEmitida
extends
Movimiento
{
@NotNull
@ManyToOne
// Columna renombrada para que no colisione con la cuenta del movimiento
@JoinColumn
(
name
=
"cuenta_dest_num"
)
Cuenta
cuenta
;
public
TransferenciaEmitida
()
{
}
public
TransferenciaEmitida
(
Cuenta
cuenta
,
float
importe
)
{
super
(-
importe
);
...
...
src/main/java/es/ujaen/dae/ujacoin/entidades/movimientos/TransferenciaRecibida.java
View file @
d3e90004
...
...
@@ -6,15 +6,25 @@
package
es
.
ujaen
.
dae
.
ujacoin
.
entidades
.
movimientos
;
import
es.ujaen.dae.ujacoin.entidades.Cuenta
;
import
javax.persistence.Entity
;
import
javax.persistence.JoinColumn
;
import
javax.persistence.ManyToOne
;
import
javax.validation.constraints.NotNull
;
/**
* Transferencia recibida de otra cuenta
* @author ajrueda
*/
@Entity
public
class
TransferenciaRecibida
extends
Movimiento
{
@NotNull
@ManyToOne
// Columna renombrada para que no coincida con la cuenta del movimiento
@JoinColumn
(
name
=
"cuenta_orig_num"
)
Cuenta
cuenta
;
public
TransferenciaRecibida
()
{
}
public
TransferenciaRecibida
(
Cuenta
cuenta
,
float
importe
)
{
super
(
importe
);
...
...
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