PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

HQL — Sprawdź, czy tablica zawiera wartość

Do mapowania tablic potrzebny jest typ niestandardowy. Możesz użyć do tego projektu hibernacji:https://vladmihalcea.com/how-to-map-java-and-sql-arrays-with-jpa-and-hibernate/

Czy próbowałeś użyć e2.col3 = FUNCTION('ANY', e1.col3Arr) już? Jeśli to nie zadziała, sugeruję utworzenie niestandardowej funkcji SQLFunction który renderuje żądany kod SQL, np.

public class ArrayAny implements SQLFunction {

    @Override
    public boolean hasArguments() {
        return true;
    }

    @Override
    public boolean hasParenthesesIfNoArguments() {
        return true;
    }

    @Override
    public Type getReturnType(Type firstArgumentType, Mapping mapping) throws QueryException {
        return firstArgumentType;
    }

    @Override
    public String render(Type firstArgumentType, List args, SessionFactoryImplementor factory) throws QueryException {
        return "any(" + args.get(0) + ")";
    }
}

Będziesz musiał zarejestrować funkcję w dialekcie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dowiedz się, czy użytkownik ma uprawnienia do wyboru/aktualizacji/... tabeli/funkcji/... w PostgreSQL

  2. Jak naprawić skrypt automatycznej kopii zapasowej dla postgres [Okno]?

  3. Jak upuścić jeden klucz łączenia podczas dołączania do dwóch stołów?

  4. Wywołanie transform() bez zestawu SRID nie jest obsługiwane

  5. Jak uniknąć rekursji w wyzwalaczu aktualizacji, który wykonuje aktualizację?