PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

HQL - Periksa apakah Array berisi nilai

Untuk memetakan array, Anda memerlukan tipe khusus. Anda dapat menggunakan proyek tipe hibernasi untuk ini:https://vladmihalcea.com/how-to-map-java-and-sql-arrays-with-jpa-and-hibernate/

Apakah Anda mencoba menggunakan e2.col3 = FUNCTION('ANY', e1.col3Arr) belum? Jika itu tidak berhasil, saya sarankan Anda membuat SQLFunction khusus yang membuat SQL yang Anda inginkan mis.

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

Anda harus mendaftarkan fungsi dalam Dialek.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Membandingkan Array di PostgreSQL

  2. Peningkatan otomatis kunci utama PostgreSQL lumpuh di C++

  3. Pemantauan Dinamis Instance PostgreSQL Menggunakan pg_top

  4. Mengubah kunci utama menjadi kunci primer komposit

  5. PostgreSQL nilai berikutnya dari urutan?