Классы домена
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "SAMPLE_DATA")
@TypeDefs({
@TypeDef(name = "json", typeClass = JsonStringType.class),
@TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
})
public class Sample implements Serializable {
private static final long serialVersionUID = 1719868663566734198L;
@Id
private Long Id;
@Type(type = "json")
@Column(columnDefinition = "json",name = "person")
private Person personObj;
private String sampledata;
private String createdBy;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Person implements Serializable {
private static final long serialVersionUID = -5427425033242474312L;
private String firstName;
private String lastName;
}
Класс репозитория
@Repository
public interface SampleRepository extends JpaRepository<Sample, Long> {
@Query(value = "select s.personObj,s.sampledata from Sample s where s.Id=:Id")
List<Sample> findPersonById(Long Id);
}
Для сопоставления с сопоставлением JSON типы объектов, использующие
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>${hibernate-types.version}</version>
</dependency>
когда я пытаюсь получить список объекта Sample, я получаю следующее исключение
org.springframework.core.convert.ConversionFailedException: Не удалось преобразовать из введите [java .lang.Object []], чтобы ввести [@ org.springframework.data.jpa.repository.Query com.domain.Sample] для значения '[Person (firstName = ab c, lastName = test) ] '; вложенное исключение - org.springframework.core.convert.ConverterNotFoundException: не найдено преобразователя, способного преобразовывать тип [com.domain.Person] в тип [@ org.springframework.data.jpa.repository.Query com.domain.Sample]. ........ Вызвано: org.springframework.core.convert.ConverterNotFoundException: не найден преобразователь, способный преобразовывать тип [com.domain.Person] в тип [@ org.springframework.data.jpa.repository. Запрос com.domain.Sample]