sql >> Databáze >  >> RDS >> PostgreSQL

Hibernujte vnořený dotaz pomocí kritérií

Myslím, že to bude vyhovovat vašim potřebám:

criteria.addOrder(Order.asc("name").ignoreCase())
        .setProjection(Projections.distinct(Projections.property("name")))
        .list();

nebo toto kritérium používá jako dílčí dotaz DetachedCriteria s projekcí názvu:

DetachedCriteria distinctNamesCriteria = DetachedCriteria.forClass(Person.class);
distinctNamesCriteria.setProjection(Projections.distinct(Projections.property("name")));

criteria.add(SubQueries.propertyIn("name", distinctNamesCriteria))
        .addOrder(Order.asc("name").ignoreCase())
        .list();


  1. Jak MySQL ukládá data

  2. Použití PostgreSQL Logical Replication k udržení vždy aktuálního testovacího serveru pro čtení/zápis

  3. Při seskupování podle maximální hodnoty vyberte různé řádky

  4. log4j2 Správce JDBC se nemůže připojit k databázi