Três paradigmas declarações Assuntos JPQL experiência bloqueio otimista bloqueio pessimista simultaneidade de banco de dados jpa

1 JPQL

1.1 O que é JPQL

JPQL: jpa é uma linguagem de consulta desde que, semelhante ao sql.

1,2 JPQL e diferenciado SQL

(1) no interior do alvo JPQL operação e o objeto atributos tabelas SQL operacionais e as colunas da tabela no interior da caixa-sensível

(2) não pode aparecer no interior JPQL *, nome da tabela não pode aparecer

(3) JPQL sql e eles são as mesmas palavras-chave, palavras-chave são maiúsculas e minúsculas

1.3 sintaxe JPQL

sintaxe SQL:

select *

da tabela

onde as condições do filtro

grupo por condição agrupamento

méd depois de ter pacote filtrada (pontuação)> 98

ordem por encomenda

JPQL semelhante

seleccionar o.name, o (atributo do objecto)

a partir da classe S o Junte O. dentro classe nome de atributo p

onde o. nome do atributo

GROUP BY o. nome do atributo

ordenar por

...

1,4 JPQL que se juntam

sql: link de consulta

Conexão externa: a conexão é dividida em externa esquerda (tabela à esquerda ea intersecção de todos os dados deve conter a parte direita da tabela.) e uma conexão externa direita (e vice-versa) LEFT JOIN direita juntam-se

En: dados sobre a parte interseção junte

JPQL:

selecionar o de Employee o juntar d o.department

1,5 - funções de agregação e a mesma SQL

sql: encontrar os seguintes valores para um conjunto de dados

contar o número de registos que procuram buscando máxima soma soma max min média média para o mínimo

1 5 6 8 2 -> 5 contagem máxima de 8 min 1 soma 22 AVG 22/5

Com o uso de grupo a grupo

1,6 sub-consultas - e como SQL

subquery:

Como o resultado de uma consulta ou uma tabela de consulta condição adicional utilizada

Subquery: uma consulta aninhada

select p from Employee p where p.salary > (select avg(o.salary) from Employee o)

1,7 recolha uso JPQL

Pode ser usado um valor determinado tamanho

select o from Project o where o.employees.size = 0

1.8 paginação

sintaxe SQL:

SELECT * FROM tabela onde limite de beginIndex, pageSize

currentPage: Página Atual

pageSize: o número de página

beginIndex: posição inicial beginIndex = (currentPage-1) * pageSize

pageSize: o número de página

SELECT * FROM tabela onde limite de 0,5

seleccionar * da tabela onde limite de 5,5

2 de suporte SQL

para sql

Usando este método

createNativeQuery

3 simultaneidade transação

3.1 O que é uma transação

transação

Serviços: um conjunto de operações lógicas ou todos sucesso ou fracasso (com a morte total)

3.2 Quais são as características da operação (ACID)

Atomicidade: A

Esta operação é uma transação que tem uma unidade mínima, não pode ser dividida novamente

Consistência: C

A mesma quantidade de consistência de dados, antes da operação, a quantidade total de 10.000, e após a conclusão da operação, a quantidade total de 10 000

Isolamento hoje :() I

Refletir mais de duas operações de assuntos, deve ter isolamento entre as transações, a transação não pode operar o meu negócio, se você operar minhas transações comerciais ocorrem, ele vai trazer a questão de transações simultâneas

Persistência: D

Quando confirmar uma transação apresentou dados sobre o baixo presença permanente

3,3 Transação simultaneidade

simultaneidade transação:

Uma pluralidade de transacção (ou dois ou mais da transacção),Ao mesmo tempoem operaçãoOs mesmos dadosTempo, este fenômeno é chamado de transações simultâneas

simultaneidade transação vai trazer alguns problemas: - resolvido através do mecanismo de isolamento de banco de dados

Os primeiros aparece atualização perdida - Cabos

A segunda categoria está faltando Update - alças

leitura suja - mecanismo de isolamento de banco de dados

Resíduos (graus mágica) - mecanismo de isolamento de banco de dados

mecanismo de isolamento de banco de dados - leitura não repetível

mecanismo de isolamento 3.4 banco de dados

quatro tipos

LEIA UNCOMMITTED (leitura não consolidada) Leia Fantasy (Leia simulado), não repetir a leitura e permitir leituras sujas.

READ COMMITTED permitir fantasia de ler, leitura não repetível, não permitem leitura suja

REPEATABLE READ permissão para ler fantasia, não permitem leituras sujas e leitura não repetível

fantasia SERIALIZABLE lê, não repetíveis e sujo lê não são permitidos - desempenho certamente tornar-se baixa

3.5 As primeira e segunda categorias atualizações perdidas

mecanismo de bloqueio

bloqueio pessimista: fechaduras muito pessimista preciso esperar por uma libertação do encaixe, de forma a manipular dados, o desempenho não é alta

bloqueio otimista: não há necessidade de esperar, após o número da versão da necessidade subjacente para controlar a primeira modificação, a mudança número da versão, a segunda pessoa não pode operar sobre este produto

regras de utilização 4JPA ou experiência

. \ 1 bidirecional muitos associação, não é um one-way para muitos - um pouco alta eficiência

. \ Associação um 2 one-way flexível - partes de chaves estrangeiras para manter a alta ponto de eficiência

\ 3. Nem um a um, com muitos para substituir (não use um compartilhada uma chave primária, chave estrangeira com um exclusivo a um)

\ 4. O objeto de configuração de cache secundário (configuração Cacheable), cache de consultas (JPQL query),

Sem consulta só usar o cache de consultas (um sucesso se as condições são muito baixos)

cache de consultas:

EntityManagerFactory entityManager diferente mesma mesmo mesma transmissão dos valores da condição JPQL

\ 5 relacionamento combinando definir a lista (sequência de repetição) - A segunda módulos documento do projeto, muitos-para-uso conjunto de coleta

\ 6. design da tabela, o campo da tabela menos, não ser mesa medo associado com o apoio de cache secundário, tabela de projeto, tanto quanto possível para alcançar o terceiro paradigma (chave estrangeira)

paradigma Base de dados: regras de banco de dados

1NF: tempo de design, que tentam garantir que a tabela não pode armazenar uma pluralidade de valores de coluna, uma coluna de unidade mínima, não pode ser dividido - Série atômica corpo

2NF: dentro de cada linha da tabela de dados deve ter um valor único podem ser distinguidos, é recomendável que você crie uma chave primária

3NF: Tabela não devem ser armazenados dentro de outra informação importante não-primária em uma tabela - Sugiro que uma chave estrangeira

Publicado 23 artigos originais · ganhou elogios 2 · Visualizações 938

Acho que você gosta

Origin blog.csdn.net/metjoyful/article/details/101197870
Recomendado
Clasificación