Skip to content

Instantly share code, notes, and snippets.

View jordisilvazup's full-sized avatar

Jordi Henrique Silva jordisilvazup

View GitHub Profile
@rponte
rponte / HowToUseIt.java
Last active December 30, 2023 14:37
THEORY: Example of a simple Single Thread Pool implementation in Java
public class HowToUseIt {
/**
* Usually we'll have a single instance per client
*/
private static final SingleThreadPool THREAD_POOL = new SingleThreadPool();
public void executeAsync() {
try {
@rponte
rponte / Intervalo.java
Last active January 17, 2023 14:24
Exemplo de tiny object para representar Intervalo de Datas (Date Range) em Java
package br.com.triadworks.tinyobjects;
import java.util.Date;
public class Intervalo {
private static int ONE_DAY_IN_MILLISECONDS = 24 * 60 * 60 * 1000;
private Date inicio;
private Date fim;
@rponte
rponte / Sorteio.java
Last active January 19, 2023 19:34
Algoritimos: Encontrar menor lance (valor) único em uma lista
import static java.util.Comparator.naturalOrder;
import static java.util.function.Function.identity;
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
import java.util.stream.Collectors;
import java.util.stream.Comparator;
import java.util.*;
public class Sorteio {
@rponte
rponte / 01_criteria.java
Last active January 17, 2023 14:26
HQL vs Criteria example
Criteria criteria = getSession().createCriteria(PagueLeve.class);
criteria.createAlias("itens", "itens", Criteria.INNER_JOIN);
criteria.add(Restrictions.ge("dataFinal", venda.getInicio())) // start1 <= end2
.add(Restrictions.le("dataInicial", venda.getFim())) // start2 <= end1
.add(Restrictions.in("itens.codigo", venda.getCodigosDosProdutosAssociados()));
criteria.setProjection(Projections.distinct(
Projections.projectionList()
.add(Projections.property("codigo").as("codigo"))