Boa tarde,
Estou com dúvidas sobre como obter da melhor forma o valor de uma coluna CLOB usando Spring Boot e JPA.
Abaixo segue como eu fiz... A entidade Actor possui uma coluna que é um CLOB, seu conteúdo é um JSON que tende a crescer bastante. Implementei da forma abaixo , mas gostaria de saber se tem outro caminho melhor.
@Table(name = "actor")
@Entity(name = "Actor")
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(of = "id")
public class Actor implements Serializable {
private static final long serialVersionUID = -4140863514505547976L;
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String msisdn;
private String cpf;
private String state;
@Column(name="ACTOR_CONTEXT", columnDefinition="CLOB NOT NULL")
private String actorContext;
Repository
public interface ActorRepository extends JpaRepository<Actor, Long>{
Actor findByMsisdn(String msisdn);
}
No Controller
@GetMapping("/{msisdn}")
public ResponseEntity<Actor> detalhar(@PathVariable String msisdn) {
Actor actorReturned = actorRepository.findByMsisdn(msisdn);
return ResponseEntity.ok(actorReturned);
}
A API retorna o conteúdo do Actor como um JSON, porém gostaria que retornasse o atributo actorContext como um json também. No caso ele está retornando como uma grande string o conteúdo desse atributo.