【问题标题】:How to select only a postgres jsonb column from a table using jpa (hibernate)如何使用 jpa(休眠)从表中仅选择 postgres jsonb 列
【发布时间】:2019-08-22 10:31:22
【问题描述】:

我正在尝试使用 JPA 从表中选择 jsonb 数据类型的列,但我在实现这一点时遇到了问题,但我可以选择其他不属于 jsonb 数据类型的列。

这里是实体类的内容

@EqualsAndHashCode(callSuper = true)
@Data
@Entity(name = "Assessment")
@Table(name = "assessment")
@TypeDefs({
    @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class)
})
@AllArgsConstructor
@NoArgsConstructor

public class Assessment extends ModelWithUUID {

  @Column(name = "session_id")
  private Integer sessionId;

  @Column(name = "section_id")
  private Integer sectionId;

  @Column(name = "subject_id")
  private Integer subjectId;

  @Column(name = "assessment", columnDefinition = "jsonb")
  @Type(type = "jsonb")
  private List assessment;

}

这是我的仓库

@Repository
public interface AssessmentRepository extends 
JpaRepository<Assessment, UUID> {

@Query(value = "select assessment from 
       assessment where subject_id = 8 ", nativeQuery = true)
List<Object> findAssessmentsBySubjectId();

} 

我的控制器看起来像这样

ResponseBody
@GetMapping("/subject/assessment")
public List<Object> getAssessment(){

    return assessmentRepository.findAssessmentsBySubjectId();
}

这是我遇到的错误

"timestamp": "2019-08-22T10:25:08.507+0000",
"status": 500,
"error": "Internal Server Error",
"message": "No Dialect mapping for JDBC type: 1111; nested exception 
is org.hibernate.MappingException: No Dialect mapping for JDBC type: 
1111",
"trace": "org.springframework.orm.jpa.JpaSystemException: No Dialect 
mapping for JDBC type: 1111; nested exception is 
org.hibernate.MappingException: No Dialect mapping for JDBC type: 
1111\n\tat 

【问题讨论】:

标签: java postgresql hibernate jpa spring-data-jpa


【解决方案1】:

你也可以定义jsonb反序列化的类,例如

@Column(name = "assessment")
  @Type(type = "jsonb")
  private Assessment assessment;

【讨论】:

  • 请你解释一下,因为我在我的实体@TypeDefs({ @TypeDef(name = "jsonb", typeClass = JsonBinaryType.class) })
猜你喜欢
  • 1970-01-01
  • 2022-11-03
  • 2021-03-10
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 2015-08-29
相关资源
最近更新 更多