Попробуйте удалить аннотацию @Transient
и предоставьте столбец, как показано ниже:
@Column(name="ds_convenio")
private String ds_convenio;
@org.springframework.data.annotation.Transient
специально указывает платформе пружины, что используемая вами Object Mapper не должна включать это значение при преобразовании изОбъект Java в JSON. Кроме того, это означает, что значение не должно сохраняться в базе данных, что означает, что вы не можете запросить его.
Или, если вы хотите сохранить , это само по себе как переходное, но не требует значения для сериализации, затем зарегистрируйте объектный преобразователь, как показано ниже:
@Bean
public ObjectMapper includeTransientObjectMapper() {
Hibernate5Module hibernate5Module = new Hibernate5Module();
hibernate5Module.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION);
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(hibernate5Module);
return mapper;
}
Или в вашем случае, так как вам нужен результат @NamedNativeQuer
, в котором вы использовали псевдоним ds_convenio
использование @FieldResult
может потребоваться для получения желаемого результата следующим образом:
@Entity
@Table(name="cad_paciente")
@Loader(namedQuery = "selectInicial")
@NamedNativeQuery(name="selectInicial", query="select p.*, fu_obter_lista_convenios_pac(p.id) as ds_convenio from cad_paciente p where p.id = ?", resultClass = Paciente.class)
@SqlResultSetMapping(name="Results",
entities={
@EntityResult(entityClass=com.acme.Order.class, fields={
@FieldResult(name="id", column="id"),
@FieldResult(name="id_empresa", column="id_empresa"),
........
})
public class Paciente {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name="id_empresa")
private Integer id_empresa;
...
@Transient
@Column(name="ds_convenio")
private String ds_convenio;
Чтение doc