1 JPQL
1.1 ¿Qué es JPQL
JPQL: JPA es un lenguaje de consulta proporcionado, de forma similar a SQL.
1,2 JPQL y diferenciada sql
(1) JPQL dentro del objetivo de la operación y el objeto atributos mesas de operaciones SQL y columnas de tabla dentro de la caja sensibles
(2) no puede aparecer en el interior de JPQL *, nombre de la tabla no puede aparecer
(3) JPQL sql y son las mismas palabras clave, palabras clave son sensibles a mayúsculas
1.3 sintaxis JPQL
sintaxis SQL:
select *
de la mesa
donde las condiciones de filtro
grupo por la condición de agrupación
avg después de tener paquete filtrado (puntuación)> 98
ordenado por pedido
JPQL similares
seleccione o.name, o (atributo de objeto)
O de la clase de la clase de Ingreso O. dentro de nombre de atributo p
donde o. Nombre del atributo
GROUP BY o. Nombre del atributo
ordenado por
...
1.4 JPQL que unen
SQL: vínculo de consulta
Conexión externa: la conexión se divide en externa izquierda (tabla de la izquierda y la intersección de todos los datos debe contener la parte derecha de la tabla.) y una conexión externa derecha (y viceversa) dejó unirse a unirse a la derecha
Es: datos sobre la porción de intersección se unen
JPQL:
O seleccione de Empleado o unirse o.department d
1,5 funciones de agregado - y el mismo sql
SQL: encontrar los siguientes valores para un conjunto de datos
contar el número de registros que buscan buscando la máxima suma suma mínima y máxima promedio de promedio para el mínimo
1 5 6 8 2 -> recuento 5 max 8 min 1 suma 22 avg 22/5
Con el uso de grupo a grupo
1.6 sub-consultas - y como SQL
subconsulta:
Como resultado de una consulta o una tabla de consultas más sobre el estado usado
Subconsulta: una consulta anidada
select p from Employee p where p.salary > (select avg(o.salary) from Employee o)
1.7 colección utilización JPQL
Puede usarse un tamaño determinado valor
select o from Project o where o.employees.size = 0
1.8 Paging
sintaxis SQL:
seleccionar * de la tabla donde límite beginIndex, pageSize
currentPage: Página actual
PageSize: el número de la página
beginIndex: posición de partida beginIndex = (currentPage-1) * pageSize
PageSize: el número de la página
seleccionar * de la tabla donde límite de 0,5
seleccionar * de la tabla donde límite de 5,5
2 de soporte de SQL
para SQL
Usando este método
createNativeQuery
3 concurrencia transacción
3.1 ¿Qué es una transacción
transacción
Servicios: un conjunto de operaciones lógicas o bien todos tienen éxito o fracasan (con la muerte total)
3.2 ¿Cuáles son las características de la operación (ACID)
La atomicidad: Un
Esta operación es una operación que tiene una unidad mínima, no se puede dividir de nuevo
Consistencia: C
La misma cantidad de consistencia de los datos, antes de la operación, la cantidad total de 10.000, y después de completar la operación, la cantidad total de 10 000
Aislamiento hoy :() I
Reflejar más de dos operaciones de asuntos, debe tener aislamiento entre transacciones, la transacción no puede operar mi negocio, si opera ocurren mis transacciones comerciales, que traerá el tema de las transacciones simultáneas
Persistencia: D
Cuando cometemos una transacción presentó datos sobre la presencia permanente hacia abajo
3.3 Transacción de concurrencia
concurrencia de transacciones:
Una pluralidad de transacción (o dos o más de la transacción),Al mismo tiempoen funcionamientoLos mismos datosTiempo, este fenómeno se conoce como transacciones simultáneas
concurrencia transacción traerá algunos problemas: - solucionado a través de mecanismo de aislamiento de base de datos
La primera aparece actualización perdidos - Mangos
La segunda categoría no se encuentra Actualización - manijas
Sucia de lectura - mecanismo de aislamiento de base de datos
Los residuos (grados Magic) - mecanismo de aislamiento de base de datos
No repetible de lectura - mecanismo de aislamiento de base de datos
mecanismo de aislamiento 3.4 base de datos
cuatro tipos
La lectura no confirmada (lectura no confirmada) Leer Fantasía (ficticia de lectura), se repite la lectura y permitir que las lecturas sucias.
Lectura confirmada permitir la fantasía para leer, lectura no repetible, no permiten lectura sucia
REPETIBLE LEER permitió leer la fantasía, no permita que las lecturas sucias y lectura no repetible
fantasía SERIALIZABLE lee, lecturas no repetibles y las lecturas sucias no están permitidos - rendimiento sin duda se convierten en baja
3.5 La primera y segunda categorías se pierdan las actualizaciones
mecanismo de bloqueo
Bloqueo pesimista: cerraduras muy pesimistas tienen que esperar a una liberación del bloqueo, con el fin de manipular datos, el rendimiento no es alto
El bloqueo optimista: hay necesidad de esperar, después de que el número de versión de la necesidad subyacente para controlar la primera modificación, el cambio de número de versión, la segunda persona no pueda funcionar para este producto
reglas de uso 4JPA o experiencia
. \ 1 bidireccional muchas asociación, no una sola vía a muchos - un poco alta eficiencia
. \ 2 unidireccional flexible de una asociación - partes de clave externa para mantener un alto punto de eficiencia
\ 3. No uno a uno, con varios a sustituir (no utilice un compartieron una clave primaria, clave externa con un único a uno)
\ 4. El secundario objeto de configuración de la memoria caché (configuración cacheable), caché de consultas (JPQL consulta),
No se consulta sólo utilizar la caché de consultas (un éxito si las condiciones son muy bajos)
caché de consultas:
entityManager EntityManagerFactory diferente mismo misma misma transmisión valores de condiciones JPQL
\ 5 relación combinando establece la lista (secuencia de repetición) - Los segundos módulos documento del proyecto, muchos-a-uso conjunto de recopilación
\ 6. mesa de diseño, el campo de tabla menos, no se mesa miedo asociado con el soporte de cache secundaria, mesa de diseño lo más lejos posible para alcanzar el tercer paradigma (clave externa)
paradigma de la base de datos: reglas de base de datos
1NF: tiempo de diseño, que tratar de asegurar que la tabla no puede almacenar una pluralidad de valores de columna, una columna unidad mínima, no puede ser dividido - cuerpo Serie atómica
2NF: dentro de cada fila de la tabla de datos debe tener un valor único se pueden distinguir, se recomienda crear una clave principal
3NF: La tabla no debe ser almacenado dentro de otra información clave no primaria en una tabla - Te sugiero una clave externa