Dans la majorité des cas, posséder des blob dans une entity ne pose pas de problème majeur.
Malheureusement, il existe des cas ou mapper ces champs peut induire une sérieuse perte de performance, spécialement lors de création de requêtes de recherche volumineuses.
Exemple de mapping d’un blog avec JPA2:
/** The documentimp. */
@Column(name="DOCUMENTIMP")
@Lob()
private byte[] documentimp;
Si vous exécuter une requête Critéria avec ce mapping, hibernate ramènera systématiquement le contenu du document ce qui n’est dans la majorité des cas pas nécessaire.
Il existe deux solutions pour contourner ce problème:
Détacher l’objet @lob dans une entity séparée et créer une relation @OneToOne avec un FetchType.LAZY. Cette solution fonctionne correctement mais nécessite de changer le mapping.
Une autre solution plus simple et efficace peut-être mise en place. Il suffit juste de créer une deuxième entité sans le champ blob mappé. Utilisé cette entité pour faire des recherches avec de grosses volumétries et n’utiliser l’autre entity (avec le @Lob) que dans le cas ou vous avez réellement besoin du blob.
Dans cet article, nous allons voir comment exécuter un job de façon autonome. Tout est présenté dans la vidéo ci-joint, le détail des étapes est résumé dans cet article.
Le processus de vente est central dans votre entreprise. C'est votre métier et votre manière de vous différencier de la concurrence. Mais ce processus est souvent complexe et mal appréhendé par les TPE/TPI qui faute de temps néglige ce processus pourtant
Implémentation de Retrofit dans un projet Android avec Coroutine