Вы находитесь на странице: 1из 43

JPA

Aplicaciones Distribuidas

Contenido

Introduccin

Asociaciones

Mapeo de Objetos

Herencia

Ejemplos

EntityManager

Identidad

Configuracin

Lectura Inmediata y Perezosa

Transacciones

Enumerados

Persistir Entidades

Transient

Leer Entidades

Colecciones

Modificar Entidades

Tipos insertables

EliminarEntidades

Tipos de acceso

JPQL

JPA

Java Persistence API


Estndar Java para el mapeo objeto relacional
Otros mapeadores (Hibernate, Toplink, EclipseLink) orientados al
mapeo con JPA portabilidad

Arquitectura:
Entidades
Identificadores
Mapeo O/R
EntityManager
Consultas
Persistence.xml
3

Mapeo de Objetos
Entidad es la unidad bsica en JPA
Toda entidad debe:

Tener un constructor por defecto


Ser una clase de primer nivel (no interna)
No ser final
Implementar la interface java.io.Serializabe si es
accedida remotamente

Metadatos de mapeo:

Mapeo XML

Ventaja:
No es necesario recompilar nuestro cdigo para cambiar la configuracin de mapeo
Inconvenientes:
Exige mantener un archivo externo.

Anotaciones

Anotaciones en la propia clase (preferido)


Ficheros de mapeo xml externos
Elegir depende de preferencias tanto personales como del proyecto.

Ventaja:
Permite tener en un mismo lugar el cdigo Java y sus instrucciones de comportamiento
Inconvenientes:
Exige una recompilacin cada vez que deseamos cambiar el comportamiento del mapeo
Resultar en cdigo menos portable (otra aplicacin no-JPA que use nuestras entidades deber incluir todas las
libreras JPA en su classpath para poder compilar correctamente).

Cuando ambas opciones son utilizadas al mismo tiempo, la configuracin XML prevalece sobre las
anotaciones

Ejemplo
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Pelicula {
@Id
@GeneratedValue
private Long id;
private String titulo;
private int duracion;
// Getters y Setters
}
6

Ejemplo:
@Entity
public class Owner {
@Id
int id;
String name;
@Column(name="PHONE_NUM")
String phoneNumber;
@OneToOne
Address address;
@OneToMany(mappedBy="owner")
List<Pet> pets;
...
}

@Entity
@Table(name="PET_INFO")
public class Pet {
@Id
@Column(name="ID")
int licenseNumber;
String name;
PetType type;
@ManyToOne
@JoinColumn(name="OWNER_ID")
Owner owner;
...
}

Identidad

Entidades poseen una identidad que las diferencie del resto


propiedad marcada con la anotacin @Id
debe admitir valores null, p.e.: Integer en lugar de int

La identidad de una entidad va a ser gestionada por el proveedor de


persistencia
propiedad de identidad anotada: @GeneratedValue
@Entity
public class Pelicula {
@Id
@GeneratedValue
private Long id;

JPA aplica a las entidades que maneja una configuracin por


defecto, de manera que una entidad es funcional con una
mnima cantidad de informacin: @Id, @Entity
Se pueden modificar los valores por defecto:
@Entity
@Table(name = "TABLA_PELICULAS")
public class Pelicula {
@Id
@GeneratedValue
@Column(name = "ID_PELICULA")
private Long id;
...
}

Lectura inmediata y perezosa


JPA nos permite leer una propiedad desde la base de
datos la primera vez que un cliente intenta leer su
valor (lectura perezosa), en lugar de leerla cuando la
entidad que la contiene es creada (lectura inmediata)
Si la propiedad nunca es accedida, nos evitamos el
coste de crearla (objetos gran tamao)
@Basic(fetch = FetchType.LAZY)
private Imagen portada;

10

El comportamiento por defecto de la mayora de tipos Java es lectura


inmediata.

Uso explcito:
@Basic(fetch = FetchType.EAGER)
private Imagen portada;

Solo los objetos de gran tamao y ciertos tipos de asociacin deben ser
leidos de forma perezosa
Si, por ejemplo, marcamos todas las propiedades de tipo int, String
o Date de una entidad con lectura perezosa, entonces se provoca
que se efecten multitud de llamadas a la base de datos, cuando con
solo una (al crear la entidad en memoria) podran haberse leido
todas con apenas coste
11

@Basic solo puede ser aplicado a:


tipos primitivos y sus correspondientes clases wrapper
(Integer, BigDecimal, )
Date
arrays
algunos tipos del paquete java.sql
enums
cualquier tipo que implemente la interface Serializable
@Basic admite el atributo optional
Permite valor null
@Basic(optional=false)
12

Enumerados

JPA puede mapear los tipos enumerados (enum) mediante la anotacin Enumerated:
@Enumerated
private Genero genero;

Mapea cada valor ordinal de un tipo enumerado a una columna de tipo numrico en la
base de datos.
public enum Genero { TERROR, DRAMA, COMEDIA, ACCION }

Se inserta valor 2 para Genero.COMEDIA (valor ordinal )

si en el futuro introducimos un nuevo tipo de genero en una posicin intermedia, o


reordenamos las posiciones de los gneros, nuestra base de datos contendr valores
errneos
forzar a la base de datos a utilizar una columna de texto
@Enumerated(EnumType.STRING)
private Genero genero;
13

Desarrollo de Aplicaciones Distribuidas

Transient
Propiedades de una entidad que pueden no
representar su estado
@Entity
public class Persona {
@Id
@GeneratedValue
private Long id;
private String nombre;
private String apellidos
private Date fechaNacimiento;
private int edad;
// getters y setters
}
14

@Transient
private int edad;

public int getEdad() {


// calcular la edad y devolverla
}

Colecciones
Una entidad puede tener propiedades de tipo
java.util.Collection y/o java.util.Map que contengan
tipos bsicos
Los elementos de estas colecciones sern
almacenados en una tabla diferente a la que contiene
la entidad donde estn declarados
El tipo de coleccin tiene que ser concreto (como
ArrayList o HashMap) y nunca una interface
private ArrayList comentarios;
15

Podemos cambiar el mapeo por defecto:


@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "TABLA_COMENTARIOS")
private ArrayList comentarios;

Si la colecin es de tipo Map se puede aadir la


anotacin @MapKeyColumn
@MapKeyColumn(name = "NOMBRE_COLUMNA)
permite definir el nombre de la columna donde se almacenarn las claves del
Map
16

Tipos Insertables
Los tipos insertables (@Embeddable) son objetos que no tienen
identidad, por lo que para ser persistidos deben ser primero
insertados dentro de una entidad
Cada propiedad del tipo insertable ser mapeada a la tabla de
la entidad que lo contenga, como si fuera una propiedad
declarada en la propia entidad
@Embeddable
public class Direccion {
private String calle;
private int codigoPostal;
...
}
17

@Entity
public class Persona {
...
@Embedded
private Direccion direccion;
}

Tipo de Acceso

JPA permite definir dos tipos de acceso:


Acceso a variable (Field access)
Si las anotaciones estn en los atributos

Acceso a propiedad (Property access)


Si las anotaciones de mapeo estn en los mtodos getter

Se pueden producir errores

@Embeddable
public class Insertable {
private int variable;

@Entity
public class Entidad
@Id
@GeneratedValue
private Long id;
@Embedded
private Insertable insertable;
}

@Column(name = "VALOR_DOBLE")
public int getVariable() {
return variable * 2;
}

18

public void setVariable(int variable) {


this.variable = variable;
}

Desarrollo de Aplicaciones Distribuidas

Solucin:
@Embeddable
@Access(AccessType.PROPERTY)
public class Insertable { ... }
Tambin se puede declarar:
@Access(AccessType.FIELD)

19

Asociaciones

Para mapear colecciones de entidades, debemos usar asociaciones:


@OneToOne, @OneToMany, @ManyToOne, @ManyToMany
Asociaciones unidireccionales
Asociaciones bidireccionales

@OneToOne:
Ejemplo unidireccional

@Entity
public class Direccion {
@Id
GeneratedValue
private Long id;
private String calle;
private String ciudad;
private String pais;
private Integer codigoPostal;

@Entity
public class Cliente {
@Id
@GeneratedValue
private Long id;
@OneToOne
private Direccion direccion;
}

// Getters y setters
}
20

// Getters y setters

Cliente contiene una referencia a una entidad Direccion (contiene la


anotacin @OneToOne)
Cliente es el dueo de la relacin de manera implcita, y por tanto
cada entidad de este tipo contendr por defecto una columna
adicional en su tabla correspondiente de la base de datos
Cada entidad ser almacenada en su propia tabla, aadiendo a la
tabla donde se almacenn los clientes (la duea de la relacin) una
columna con las claves foraneas necesarias.
Personalizar columna:
@OneToOne
@JoinColumn(name = "DIRECCION_FK")
private Direccion direccion;

21

@OneToMany

@Entity
public class Cliente {
@Id
@GeneratedValue
private Long id;
@OneToMany
private List direcciones;
// Getters y setters
}

JPA utilizar por defecto una tabla de unin (join table)


las tablas donde se almacenan ambas entidades contienen una clave foranea
a una tercera tabla con dos columnas
Personalizar tabla de unin:
@OneToMany
@JoinTable( name = ...,
joinColumn = @JoinColumn(name = ...),
inverseJoinColumn = @JoinColumn(name = ...))
private List direcciones;
22

@OneToOne
Ejemplo bidireccional
ambos lados de la relacin deben
estar anotados con
@OneToOne, pero ahora uno
de ellos debe indicar de manera
explcita que la parte contraria es
duea de la relacin:
mappedBy en la anotacin de
asociacin de la parte no-duea

@MantToMany: igual que


anteriores

@Entity
public class Marido {
@Id
@GeneratedValue
private Long id;
@OneToOne(mappedBy = "marido")
private Mujer mujer;
}

@Entity
public class Mujer {
@Id
@GeneratedValue
private Long id;
@OneToOne
private Marido marido;
}

23

// Getters y setters

Tipo de lectura en asociaciones


El tipo de lectura por defecto para las relaciones
uno-a-uno y muchos-a-uno es inmediata (eager).
El tipo de lectura para los dos tipos de relaciones
restantes (uno-a-muchos y muchos-a-muchos), es
perezosa (lazy)
Modificar:
@OneToMany(fetch = FetchType.EAGER)
private List pedidos;

24

Ordenacin en asociaciones
Ordenar los resultados devueltos por una asociacion
mediante la anotacin @OrderBy:
@OneToMany
@OrderBy("nombrePropiedad asc")
private List pedidos;

25

Herencia
JPA permite gestionar la forma en que los objetos
son mapeados cuando en ellos interviene el
concepto de herencia
Una tabla por familia (comportamiento por defecto)
Unin de subclases
Una tabla por clase concreta

Por defecto es una tabla por familia (familia son las


subclases que estn relacionadas por herencia con
una clase padre)
26

Desarrollo de Aplicaciones Distribuidas

Una tabla por familia:


Todas las clases que forman parte de una misma
familia son almacenadas en una nica tabla (nombre
de la clase padre).
En esta tabla existe una columna por cada atributo de
cada clase y subclase de la familia
Adems de una columna adicional donde se almacena
el tipo de clase al que hace referencia cada fila

27

Se puede hacer explcito:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class SuperClass { ... }

y personalizar:
@Entity
@Inheritance
@DiscriminatorColumn(name = "...", discriminatorType = CHAR)
@DiscriminatorValue("C")
public class SuperClase { ... }
@Entity
@DiscriminatorValue("S")
public class SubClase extends SuperClase { ... }
28

Unin de subclases
Cada clase y subclase (sea abstracta o concreta) ser
almacenada en su propia tabla
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class SuperClase { ... }
La tabla raz contiene una columna con una clave primaria usada por todas
las tablas, as como la columna discriminatoria
Cada subclase almacenar en su propia tabla nicamente sus atributos
propios (nunca los heredados), as como una clave fornea que hace
referencia a la clave primaria de la tabla raz

29

Una tabla por clase concreta


Cada entidad ser mapeada a su propia tabla
(incluyendo todos los atributos propios y heredados)
No hay tablas compartidas, columnas compartidas, ni
columna discriminatoria.
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class SuperClase { ... }

30

EntityManager

EntityManager es la clase principal del API


Crear entidades
Crear consultas que devuelven entidades
Actualizar y borrar entidades
etc

Dos tipos de EntityManger


Container-Managed
Proporcionado por Service Provider Interface de JPA (mediante inyeccin
de dependencia)

Non-Managed
Desde cualquier implementacin JPA, usando factoras
31

Ejemplo:
Non-Managed
import javax.persistence.*;
...
EntityManagerFactory emf = Persistence.createEntityManagerFactory("PetShop");
EntityManager em = emf.createEntityManager();
...
em.close();

Container-Managed
@Stateless
public class MyBean implements MyInterface {
@PersistenceContext(unitName="PetShop")
EntityManager em;
... }
32

Configuracin
META-INF/persistence.xml
Unidad de persistencia
Configuracin de acceso a un origen de datos con JPA
Requiere nombre para ser referenciado desde programacin
Tipos
Managed Container (referenciado mediante JNDI)
<persistence-unit name="PetShop">
<jta-data-source>jdbc/PetShopDB</jta-data-source>
</persistence-unit>

Non-Managed (continua)
33

<persistence-unit name="PetShop">
<class>com.acme.petshop.Pet</class>
<class>com.acme.petshop.Owner</class>
<properties>
<property name=javax.persistence.jdbc.driver"
value="oracle.jdbc.OracleDriver"/>
<property name="javax.persistence.jdbc.url"
value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="javax.persistence.jdbc.user" value="scott"/>
<property name="javax.persistence.jdbc.password value="tiger"/>
</properties>
</persistence-unit>

34

Transacciones

El concepto de transaccin representa un contexto de ejecucin dentro del cual


podemos realizar varias operaciones como si fuera una sola:
o todas ellas son realizadas satisfactoriamente o el proceso se aborta en su
totalidad

Dos tipos de transaccionalidad


JTA container
Usa tcnicas de transaccionalidad del contenedor (p.e. transaccionalidad del
contenedor EJB required)
<persistence-unit name=AADDPersistencia" transaction-type=JTA">

Resource Local
Indicar explcitamente la transaccionalidad mediante programacin.
EntityTransaction begin, commit, rollback
<persistence-unit name=AADDPersistencia" transactiontype="RESOURCE_LOCAL">
35

Estados entidades

Una entidad puede estar en uno de los dos estados siguientes:


Managed (gestionada)
Todos los cambios que efectuemos sobre ella dentro del contexto de una
transaccin se vern reflejados tambin en la base de datos, de forma
transparente para la aplicacin.

Detached (separada)
Los cambios realizados en la entidad no estn sincronizados con la base
de datos.
Una entidad se encuentra en estado separado antes de ser persistida por
primera vez, y cuando tras haber estado gestionada es separada de su
contexto de persistencia

36

Persistir entidades
EntityManagerFactory emf =
Persistence.createEntityManagerFactory(AADDPersistencia");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
Pelicula pelicula = new Pelicula();
pelicula.setTitulo("Pelicula uno");
pelicula.setDuracion(142);
tx.begin();
try {
em.persist(pelicula);
tx.commit();
} catch(Exception e) {
tx.rollback()
}
em.close();
emf.close();
37

La sincronizacin puede no ocurrir hasta que instamos a la


transaccin para completarse (tx.commit())
Depende la implementacin concreta del proveedor de
persistencia que usemos
Forzar a que cualquier cambio pendiente
flush() de EntityManager
Sincronizacin en sentido inverso, actualizando una entidad
con los datos que actualmente se encuentran en la base de
datos
refresh() de EntityManager
38

Leer entidades
JPA permite leer una entidad previamente persistida
en la base de datos para construir un objeto Java:
Obteniendo un objeto real
Pelicula p = em.find(Pelicula.class, id);
Lectura inmediata de la instancia

Obteniendo una referencia a los datos persistidos


Pelicula p = em.getReference(Pelicula.class, id);
Lectura perezosa de la instancia

39

Actualizar entidades
Una instancia managed puede ser modificada y su
sincronizacin es automtica
Se puede separar una o todas las entidades
gestionadas actualmente por el contexto de
persistencia mediante los mtodos detach() y clear()
los cambios en su estado dejan de ser sincronizados con
la base de datos
em.persist() lanzar una excepcin
em.merge() pasa de nuevo a managed
40

Eliminar entidades
La entidad es eliminada de la base de datos y separada del
contexto de persistencia.
Sin embargo, la entidad seguir existiendo como objeto Java
em.remove(pelicula);
pelicula.setTitulo("ya no soy una entidad, solo un objeto
normal");

Java

Cuando existe una asociacin uno-a-uno y uno-a-muchos entre dos


entidades no eliminan en cascada, por defecto

Indicar:
@OneToOne(orphanRemoval = true)
private Descuento descuento;

41

Operaciones en cascada

Uso del atributo cascade:

@OneToOne(cascade = CascadeType.REMOVE)
private Descuento descuento;
CascadeType.PERSIST
.REMOVE
.MERGE
.REFRESH
.DETACH
.ALL

Configurar varias operaciones en cascada de la lista superior usando un array


de constantes CascadeType

@OneToOne(cascade = {
CascadeType.MERGE,
CascadeType.REMOVE,
})
private Descuento descuento;
42

Desarrollo de Aplicaciones Distribuidas

JPQL

Lenguaje similar a SQL orientado a objetos, trabaja con entidades JPA

Pequeas diferencias con HQL (p.e.: requiere SELECT en la proyeccin,


UPDATE y DELETE, )

Tres tipos de sentencias:


1. select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]
2. update_clause [where_clause]
3. delete_clause [where_clause]

Soporta las funciones:


Agregados: AVG, MAX, MIN, SUM,COUNT
Cadena: CONCAT, SUBSTRING, TRIM, LOWER, UPPER
Numericas: LENGTH, ABS, SQRT, MOD, SIZE
Fecha: CURENT_DATE, CURRENT_TIME
43

Вам также может понравиться

  • Plan de Actividades
    Plan de Actividades
    Документ18 страниц
    Plan de Actividades
    Jessi Mandujano Franco
    Оценок пока нет
  • 05 Fomato de Informe Final
    05 Fomato de Informe Final
    Документ6 страниц
    05 Fomato de Informe Final
    Ratmi
    Оценок пока нет
  • 04 Instrucciones-Informe Final
    04 Instrucciones-Informe Final
    Документ1 страница
    04 Instrucciones-Informe Final
    Ravl1
    Оценок пока нет
  • Análisis de Redes Sociales
    Análisis de Redes Sociales
    Документ16 страниц
    Análisis de Redes Sociales
    Jesus Jacobe
    Оценок пока нет
  • Modelo - Carta de Aceptación
    Modelo - Carta de Aceptación
    Документ1 страница
    Modelo - Carta de Aceptación
    Jesus Jacobe
    Оценок пока нет
  • Persistencia de Datos
    Persistencia de Datos
    Документ35 страниц
    Persistencia de Datos
    Jesus Jacobe
    Оценок пока нет
  • Modelo - Carta de Aceptación
    Modelo - Carta de Aceptación
    Документ1 страница
    Modelo - Carta de Aceptación
    Jesus Jacobe
    Оценок пока нет
  • 04 Instrucciones-Informe Final
    04 Instrucciones-Informe Final
    Документ1 страница
    04 Instrucciones-Informe Final
    Ravl1
    Оценок пока нет
  • Fichas de Control de Actividades
    Fichas de Control de Actividades
    Документ29 страниц
    Fichas de Control de Actividades
    Jesus Jacobe
    Оценок пока нет
  • 05 Fomato de Informe Final
    05 Fomato de Informe Final
    Документ6 страниц
    05 Fomato de Informe Final
    Ratmi
    Оценок пока нет
  • Análisis de Redes Sociales
    Análisis de Redes Sociales
    Документ16 страниц
    Análisis de Redes Sociales
    Jesus Jacobe
    Оценок пока нет
  • Rol de Vacaciones Agosto 2019
    Rol de Vacaciones Agosto 2019
    Документ33 страницы
    Rol de Vacaciones Agosto 2019
    Jesus Jacobe
    Оценок пока нет
  • O Tesis6
    O Tesis6
    Документ213 страниц
    O Tesis6
    Jesus Jacobe
    Оценок пока нет
  • Requisitos para Obtener Bachiller
    Requisitos para Obtener Bachiller
    Документ2 страницы
    Requisitos para Obtener Bachiller
    Rider Tabraj Barzola
    Оценок пока нет
  • Estadistica
    Estadistica
    Документ8 страниц
    Estadistica
    Jesus Jacobe
    Оценок пока нет
  • O Tesis4
    O Tesis4
    Документ247 страниц
    O Tesis4
    Jesus Jacobe
    Оценок пока нет
  • 17 215 13
    17 215 13
    Документ2 страницы
    17 215 13
    Jesus Jacobe
    Оценок пока нет
  • O Tesis5
    O Tesis5
    Документ442 страницы
    O Tesis5
    Jesus Jacobe
    Оценок пока нет
  • 17 212 10
    17 212 10
    Документ58 страниц
    17 212 10
    Jesus Jacobe
    Оценок пока нет
  • 17 215 13
    17 215 13
    Документ2 страницы
    17 215 13
    Jesus Jacobe
    Оценок пока нет
  • 17 217 15
    17 217 15
    Документ6 страниц
    17 217 15
    Jesus Jacobe
    Оценок пока нет
  • 17 213 11
    17 213 11
    Документ46 страниц
    17 213 11
    Jesus Jacobe
    Оценок пока нет
  • Modelo dinámico de producción e inventario
    Modelo dinámico de producción e inventario
    Документ457 страниц
    Modelo dinámico de producción e inventario
    Freddy Astucuri Quispe
    Оценок пока нет
  • 17 212 10
    17 212 10
    Документ58 страниц
    17 212 10
    Jesus Jacobe
    Оценок пока нет
  • Sistemas Viables
    Sistemas Viables
    Документ239 страниц
    Sistemas Viables
    Jesus Jacobe
    Оценок пока нет
  • Clase 04
    Clase 04
    Документ34 страницы
    Clase 04
    Jesus Jacobe
    Оценок пока нет
  • 17 211 9
    17 211 9
    Документ1 страница
    17 211 9
    Jesus Jacobe
    Оценок пока нет
  • Pagina de Derechos PDF
    Pagina de Derechos PDF
    Документ1 страница
    Pagina de Derechos PDF
    Jesus Jacobe
    Оценок пока нет
  • 17 203 1 PDF
    17 203 1 PDF
    Документ2 страницы
    17 203 1 PDF
    Jesus Jacobe
    Оценок пока нет
  • Clase 06
    Clase 06
    Документ29 страниц
    Clase 06
    Jesus Jacobe
    Оценок пока нет
  • DFPR Unidad2 Planeacion Didáctica Ok
    DFPR Unidad2 Planeacion Didáctica Ok
    Документ6 страниц
    DFPR Unidad2 Planeacion Didáctica Ok
    David Ramírez
    Оценок пока нет
  • Manual Pls Tower
    Manual Pls Tower
    Документ189 страниц
    Manual Pls Tower
    Carla Parra Medina
    Оценок пока нет
  • Informatica 2019 Universidad Americana
    Informatica 2019 Universidad Americana
    Документ6 страниц
    Informatica 2019 Universidad Americana
    Adans Alvares Franco
    Оценок пока нет
  • Libro SEGUNDA PARTE Cálculo 3 - UNIANDES
    Libro SEGUNDA PARTE Cálculo 3 - UNIANDES
    Документ238 страниц
    Libro SEGUNDA PARTE Cálculo 3 - UNIANDES
    Camilo Cárdenas Poveda
    Оценок пока нет
  • Evaluación U1
    Evaluación U1
    Документ7 страниц
    Evaluación U1
    Carlos Cantor
    100% (8)
  • Rúbrica de Evaluación de Propuestas
    Rúbrica de Evaluación de Propuestas
    Документ2 страницы
    Rúbrica de Evaluación de Propuestas
    Jonathan Gyman
    Оценок пока нет
  • Sesion 3 ASP
    Sesion 3 ASP
    Документ12 страниц
    Sesion 3 ASP
    Manuel Huertas Honores
    Оценок пока нет
  • E-Comers e Bussiness
    E-Comers e Bussiness
    Документ23 страницы
    E-Comers e Bussiness
    Roosevelt Enrique
    Оценок пока нет
  • TRAZABILIDAD
    TRAZABILIDAD
    Документ32 страницы
    TRAZABILIDAD
    Andres Mendez
    100% (2)
  • Grados de Libertad
    Grados de Libertad
    Документ16 страниц
    Grados de Libertad
    YanetMa
    Оценок пока нет
  • Gcap Atr U1 Lez
    Gcap Atr U1 Lez
    Документ3 страницы
    Gcap Atr U1 Lez
    Letty Mora
    Оценок пока нет
  • Ejer Cici Os Poo Intro Ducci On
    Ejer Cici Os Poo Intro Ducci On
    Документ2 страницы
    Ejer Cici Os Poo Intro Ducci On
    Empalierkunta
    Оценок пока нет
  • Futuro Inteligente
    Futuro Inteligente
    Документ3 страницы
    Futuro Inteligente
    Kya Zu Nyn
    60% (5)
  • Examen Final 1er Grado Matemáticas
    Examen Final 1er Grado Matemáticas
    Документ8 страниц
    Examen Final 1er Grado Matemáticas
    Jeannete Gillibrand
    Оценок пока нет
  • Ecuaciones Diferenciales
    Ecuaciones Diferenciales
    Документ38 страниц
    Ecuaciones Diferenciales
    MarceloMayurìRamirez
    100% (2)
  • FormAccMej
    FormAccMej
    Документ7 страниц
    FormAccMej
    carlox_hm
    Оценок пока нет
  • Tarea Grupal RFID
    Tarea Grupal RFID
    Документ4 страницы
    Tarea Grupal RFID
    mirian caceres
    Оценок пока нет
  • Ingeniería Conceptual BASICA Y de DETALLES
    Ingeniería Conceptual BASICA Y de DETALLES
    Документ4 страницы
    Ingeniería Conceptual BASICA Y de DETALLES
    CamacaroBelkis
    Оценок пока нет
  • Globalizacion y Transporte
    Globalizacion y Transporte
    Документ2 страницы
    Globalizacion y Transporte
    Lucia Vega Núñez
    100% (2)
  • Cómo Hacer Formulas en BUK
    Cómo Hacer Formulas en BUK
    Документ4 страницы
    Cómo Hacer Formulas en BUK
    joan
    Оценок пока нет
  • Aguja
    Aguja
    Документ3 страницы
    Aguja
    Diego Flores
    Оценок пока нет
  • Tipos de Encuestas de Mercado
    Tipos de Encuestas de Mercado
    Документ4 страницы
    Tipos de Encuestas de Mercado
    Paola Villazón
    Оценок пока нет
  • Ismael Ruiz Martinez
    Ismael Ruiz Martinez
    Документ3 страницы
    Ismael Ruiz Martinez
    SpartanLuism
    Оценок пока нет
  • Aprende Symfony 2
    Aprende Symfony 2
    Документ161 страница
    Aprende Symfony 2
    Juanito
    Оценок пока нет
  • Elementos Terminales
    Elementos Terminales
    Документ29 страниц
    Elementos Terminales
    Kevin Reyes
    Оценок пока нет
  • UDC - Plan Redes y Telecomunicaciones
    UDC - Plan Redes y Telecomunicaciones
    Документ18 страниц
    UDC - Plan Redes y Telecomunicaciones
    Universidad del Chubut
    Оценок пока нет
  • Coeficiente Estructural
    Coeficiente Estructural
    Документ1 страница
    Coeficiente Estructural
    OrLy Terceros
    Оценок пока нет
  • Lean Banking - Excelencia Bancaria
    Lean Banking - Excelencia Bancaria
    Документ27 страниц
    Lean Banking - Excelencia Bancaria
    Sergio Avalos
    67% (3)
  • GRUPO N5.-Conexion Dedicada y Conmutada
    GRUPO N5.-Conexion Dedicada y Conmutada
    Документ2 страницы
    GRUPO N5.-Conexion Dedicada y Conmutada
    Paola Iles
    Оценок пока нет
  • Estandares Globales PMI (Victor Villar) PDF
    Estandares Globales PMI (Victor Villar) PDF
    Документ45 страниц
    Estandares Globales PMI (Victor Villar) PDF
    Romelmc
    Оценок пока нет