estoy usando ejb3 y JPA (basado en la hibernación y Oracle 10g en el momento)Cómo crear un CLOB en APP en una implementación independiente del camino
Tengo una entidad que contiene 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;
}
Luego quiero guardar una entidad de este tipo.
En el momento que estoy haciendo lo siguiente, que funciona perfectamente
ExampleEntity exampleEntity = new ExampleEntity();
exampleEntity.setSomeText(Hibernate.createClob(aStringValue));
someOtherDao.save(exampleEntity);
Sin embargo, esto ata mi código para Hibernate! Hasta ahora, he evitado específicamente las extensiones de Hibernate y he usado solo anotaciones JPA. El código funciona porque de hecho Hibernate es mi implementación actual.
¿Hay algún tipo de API JPA que me permita crear un clob de forma genérica? Entonces, si más tarde decido cambiar a Toplink/EclipseLink o alguna otra cosa, ¿no tendré que cambiar nada?
También es posible que desee '@Basic (fetch = LAZY)' para la carga diferida. – axtavt
@Basic (fetch = LAZY) no funcionará en una propiedad de hibernación. Al menos no sin instumentación. – yannisf
No funciona con "Oracle 11g R2" - la definición de mi columna es @Column (columnDefinition = "CLOB NOT NULL") @Lob private String notes; pero Oracle siempre crea la columna como "CLOB (4000)". Me estoy perdiendo de algo ? Estoy usando la versión "Hibernate 3.2.0-Final" (con JBoss 6.0-Final). – javauser71