PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come mappare Postgres _INT8 all'entità Java usando Hibernate?

_int8 è un alias interno per il tipo int8[] , ovvero un array di interi lunghi.

Non ho idea del motivo per cui viene utilizzato il prefisso di sottolineatura, è orribile, ma in realtà dovrebbe essere visibile solo all'interno del server, quindi sono sorpreso che tu lo stia vedendo apparire nei messaggi. Prendi questo, ad esempio, dove il server mostra bigint[] come la colonna digita nei messaggi:

http://sqlfiddle.com/#!12/61bc5/1

Se vuoi mapparlo in Hibernate, devi mapparlo come long[] , se Hibernate supporta anche gli array SQL - cosa che non sembra . Probabilmente dovrai aggiungere la tua implementazione UserType che utilizzi il supporto JDBC per gli array SQL . Un altro esempio sui forum di Hibernate . sembra essere una specie di FAQ , ma come la maggior parte delle cose in Hibernate/JPA scoprirai che non appena proverai a utilizzare qualsiasi cosa tranne le funzionalità di database più basilari, sbatterai la testa contro un muro di mattoni.