Comment stocker un fichier dans la base de données avec le Graal
J'ai besoin de stocker un fichier dans la base de données à l'aide de Graal. Donc, savez-vous comment je peux faire? Le type de données dois-je utiliser dans le domaine de la classe (byte[] pourrait être une solution)?
Vous devez vous connecter pour publier un commentaire.
Voir le Chapitre sur le Téléchargement de Fichiers dans le Graal Guide De L'Utilisateur. Il est également possible d'utiliser java.sql.Blob type pour le contenu binaire (ce qui serait préférable lorsque vous traitez avec de gros fichiers).
sinon, stocker le fichier sur le disque, et de stocker le chemin d'accès dans la base de données. il est généralement plus rapide d'accéder au fichier sur le disque que dans une db. mais bien sûr, ça dépend des besoins de l'application. Mais il faut être conscient de cette alternative.
Vous pouvez forcer l'objet de domaine à utiliser un type spécifique lors de la mise à jour ou de la génération de la base de données avec des mappages de colonnes:
Ce qui a fonctionné pour moi jusqu'à présent 😉
J'ai eu le même problème. Tout ce que j'avais à faire était d'aller à la base de données (Oracle) et de modifier le type de colonne à partir de matières de Blob. (En fait, j'ai dû enlever la colonne, puis en créer un nouveau).
Je n'ai jamais été en mesure de trouver comment l'utiliser java.sql.Blob" comme suggéré ci-dessus. J'ai trouvé ce cette conversion d'octets pour les Blob), mais il me semblait un peu compliqué.
J'ai récemment utilisé byte[] dans un domaine de classe pour le stockage de fichier, il marchait très bien jusqu'à ce que j'ai envoyé ma demande de "HSQLDB" à "Oracle express".
Sur Oracle, byte[] a été associé à un objet brut au lieu de blob... (pas sûr de ce qui a été exactement de mal) et j'ai fini par résoudre le problème en utilisant java.sql.blob