PostgreSQL et champ text[]

Répondre
doc
Messages : 187
Enregistré le : dim. févr. 26, 2017 4:39 pm

mar. août 08, 2017 8:17 pm

Bonjour,

Je poste à tout hasard si un dev passe dans le coin avant que je trouve la solution tout seul comme un grand :) .

Pour un de mes modules, j'ai besoin de travailler avec des champs text[], OC ne les prenant pas en compte nativement, je dois travailler directement avec la connection pour transformer un tableau java en table PostgreSQL à l'aide de createArrayOf().

Est ce qu'il y a un moyen de travailler avec la connection hors useConnection(), si j'essaie en utilisant directement la connection j'ai un message d'erreur qui me dit que useConnection() n'est pas appelé ??

Code : Tout sélectionner

try {
    ComptaPropsConfiguration.getInstance().getBase().getDataSource().useConnection(new ConnectionHandlerNoSetup<Object, SQLException>() {

        @Override
            public Object handle(SQLDataSource ds) throws SQLException, SQLException {
                String[] array = {"Oui", "Non"};
                values = ds.getConnection().createArrayOf("text", array);
                
                return null;
            }
});

} catch (SQLException ex) {
    ex.printStackTrace();
}
Merci.
doc
Messages : 187
Enregistré le : dim. févr. 26, 2017 4:39 pm

mer. août 09, 2017 10:14 am

Finalement j'ai trouvé la solution tout seul en me penchant un peu plus sur la structure du code :)

La fonction useConnection() renvoie un objet que l'on doit spécifier.

Code : Tout sélectionner

Array values = null;
try {
    values = ComptaPropsConfiguration.getInstance().getBase().getDataSource().useConnection(new ConnectionHandlerNoSetup<Array, SQLException>() {
    
        @Override
        public Array handle(SQLDataSource ds) throws SQLException, SQLException {
            String[] array = {"Oui", "Non"};
    
            return ds.getConnection().createArrayOf("text", array);
        }
    });

} catch (SQLException ex) {
    ex.printStackTrace();
}
Répondre