J'utilise Ejb3 et JPA (basé sur Hibernate et Oracle 10g pour le moment)
J'ai une entité qui contient un clob
@Entity
@Table(name = "My_TAB")
public class ExampleEntity implements Java.io.Serializable {
private Clob someText;
public void setSomeText(Clob someText) {
this.someText= someText;
}
@Column(name = "COLUMN_NAME")
public Clob getSomeText() {
return this.someText;
}
Ensuite, je veux enregistrer une entité de ce type.
En ce moment, je fais ce qui suit qui fonctionne parfaitement
ExampleEntity exampleEntity = new ExampleEntity();
exampleEntity.setSomeText(Hibernate.createClob(aStringValue));
someOtherDao.save(exampleEntity);
Cependant, cela lie mon code à Hibernate! Jusqu'à présent, j'ai spécifiquement évité les extensions Hibernate et utilisé uniquement les annotations JPA. Le code fonctionne car en effet Hibernate est mon implémentation actuelle.
Existe-t-il une sorte d'API JPA qui me permet de créer un clob de manière générique? Donc, si plus tard, je décide de passer à Toplink/EclipseLink ou à autre chose, je n'aurai rien à changer?
Il y a un tel exemple est la spécification JPA (§ 9.1.5)
@Column(name="DESC",
columnDefinition="CLOB NOT NULL",
table="EMP_DETAIL")
@Lob
public String getDescription() { return description; }
Je pense que c'est la méthode standard pour CLOB.