PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

HQL - Проверете дали масивът съдържа стойност

За картографиране на масивите ще ви трябва персонализиран тип. Можете да използвате проекта hibernate-types за това:https://vladmihalcea.com/how-to-map-java-and-sql-arrays-with-jpa-and-hibernate/

Опитахте ли да използвате e2.col3 = FUNCTION('ANY', e1.col3Arr) още? Ако това не работи, предлагам ви да създадете персонализирана SQLFunction който изобразява SQL, който желаете, напр.

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) + ")";
    }
}

Ще трябва да регистрирате функцията в Dialect.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Внедряване на приложение Node/Sequelize към heroku - Проблем с PORT

  2. Как мога да кажа на PostgreSQL да не прекъсва цялата транзакция, когато едно ограничение е неуспешно?

  3. Какво е новото в PostgreSQL 12

  4. Настройване на постоянни данни за Carto/Postgresql на ACI

  5. PL/pgSQL проверка дали съществува ред