Mais um erro na migração do hibernate 3 pro hibernate 4 e empaquei nesse erro abaixo:
Tipo de coluna inválido: getCLOB not implemented for class oracle.jdbc.driver.T4CVarcharAccessor
Alguém já passou por isso e pode me ajudar?
Mais um erro na migração do hibernate 3 pro hibernate 4 e empaquei nesse erro abaixo:
Tipo de coluna inválido: getCLOB not implemented for class oracle.jdbc.driver.T4CVarcharAccessor
Alguém já passou por isso e pode me ajudar?
Nunca.
Como está o mapeamento da entitdade em questão?
Boa noite Augusto!
@Entity
@Table(name = “TR_VEICULO”, catalog = “”, schema = “TRANSPORTE”)
@Data @AllArgsConstructor @NoArgsConstructor
public class TrVeiculo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@SequenceGenerator(name = "SEQTR_VEICULOVEIC_CODIGO", sequenceName = "SE_TR_VEICULO_VEIC_CODIGO", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQTR_VEICULOVEIC_CODIGO")
@Basic(optional = false)
@Column(name = "VEIC_CODIGO")
private Long veicCodigo;
…
@Lob
@Column(name = “VEIC_OBSERVACAO”)
private String veicObservacao;
…
}
Se eu tirar o @Lob funciona,
o mais intrigante é que na versão 3 do hibernate não apresenta erro
Sempre que utilizei a anotação @Lob trabalhei em array de bytes, nunca com Strings.
Talvez seja isso.
No oracle este campo veicObservacao é um CLOB, por isso que coloquei como String no java
Tenho outros campos no oracle BLOB que declarei como byte[]
Mas em ambos os casos dá erro se deixar a anotação
Tem duas coisas aí, o primeiro é que @Lob atende a CLOB ou BLOB.
O segundo é que a mensagem de erro menciona o Driver oracle e não o hibernate, diretamente
Tipo de coluna inválido: getCLOB not implemented for class oracle.jdbc.driver.T4CVarcharAccessor
Está utilizando a versão mais atual do driver?
Fiz como você indicou e funcionou:
///////////////////////
@Lob
@Column(name = “campo_blob”, columnDefinition = “BLOB”)
private byte[] campoBlob;
//////////////////////
String valor = new String(entity.getCampoBlob())