-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnotas.txt
67 lines (51 loc) · 3.6 KB
/
notas.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
Tentativas frustradas de montar uma query de join e evitar 2 selects:
public static Saldo fetchSaldoWithUltimasTransacoesById(Integer id) {
//se usar @Orderby, o range nao funciona; se retira, fica na ordem da pk id
PanacheQuery<Saldo> saldoQuery =
Saldo.find("FROM Saldo s LEFT OUTER JOIN Transacao t ON s.id=t.saldo.id WHERE s.id = ?1", Sort.descending("transacoes.realizadaEm") id);
// Saldo.find("FROM Saldo s LEFT OUTER JOIN Transacao t ON s.id=t.saldo.id WHERE s.id = ?1", id);
saldoQuery.range(0, 9);
Saldo saldo = saldoQuery.firstResult();
return saldo;
}
Saldo saldo = Saldo.find("""
SELECT s FROM Saldo s LEFT OUTER JOIN Transacao tt ON s.id = tt.saldo.id WHERE s.id = ?1 AND (SELECT IFNULL(ELEMENT(s.transacoes).id = ?1, ?2))""", id, Collections.EMPTY_LIST).firstResult();
Links úteis que ajudaram a entender o funcionamento das coisas
==============================================================
Gerar o "saldo" nos dados de retorno do json no jackson:
https://stackoverflow.com/questions/36107564/jsonrootname-not-working
Anotações úteis do jackson:
https://www.baeldung.com/jackson-annotations#bd-6-jsonrootname
E mais:
https://www.logicbig.com/tutorials/misc/jackson/json-type-info-with-logical-type-name.html
Tratamento jackson em json infinito em relação bi-direcional (ou problema N+1, pq não identifiquei certo)
https://www.baeldung.com/jackson-bidirectional-relationships-and-infinite-recursion
Entender como gravar os dados na tabela de transações:
https://vladmihalcea.com/the-best-way-to-map-a-onetomany-association-with-jpa-and-hibernate/
E fazer o merge com o Panache:
https://stackoverflow.com/questions/73178267/panache-equivalent-to-hibernate-merge
Entender como funciona save(), persist() e merge() do Hibernate:
https://www.baeldung.com/hibernate-save-persist-update-merge-saveorupdate
Entender quem é o 'owning side' nas relações bi-direcionais (é a entidade que faz referência à outra, a "many", que não define o mappedBy)
https://stackoverflow.com/a/2749719/2443421
Resolver o problema do Ryuk negar os testes por causa dos testcontainers (incluído arquivo .env):
foi só seguir o que está nessa resposta do post https://stackoverflow.com/a/75110548/2443421 sem precisar setar a primera variável DOCKER_HOST
Resolver o erro de não conseguir fazer bind na porta 8081 de testes:
https://stackoverflow.com/questions/57095830/how-to-fix-the-error-caused-by-java-net-bindexception-address-already-in-use
Erro de permissão OCI ao rodar o container, é porque o Dockerfile do quarkus está errado:
https://github.com/quarkusio/quarkus/issues/28414#issue-1398397042
Dicas de Hibernate:
https://vladmihalcea.com/hibernate-performance-tuning-tips/
Tratar o warning "firstResult/maxResults specified with collection fetch..."
https://stackoverflow.com/questions/11431670/how-can-i-avoid-the-warning-firstresult-maxresults-specified-with-collection-fe
E explicação de diferença entre JOIN e JOIN fetch
https://stackoverflow.com/a/59468551/2443421
gerei a instalação com o comando:
# .\mvnw.cmd install -Dnative '-Dquarkus.native.container-build=true' '-Dquarkus.native.container-runtime=podman'
criei o container (no root do projeto) com o comando:
# podman build -f .\src\main\docker\Dockerfile.native-micro --format=docker -t quay.io/mcgoulart/rinhaquarkus:latest .
mandei pro quay com o comando:
# podman push quay.io/mcgoulart/rinhaquarkus:latest
Lembrar que a DEV-UI do quarkus é muito útil
na extension do Hibernate tem os DDL lá para copiar
na config dá pra ver o endereço dos devservices e configurar produção