java - 如何使用 jpa (hibernate) 从表中仅选择 postgres jsonb 列

标签 java postgresql hibernate jpa spring-data-jpa

我正在尝试使用 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();

} 

我的 Controller 看起来像这样

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 

最佳答案

例如,您还可以定义用于 jsonb 反序列化的类

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

关于java - 如何使用 jpa (hibernate) 从表中仅选择 postgres jsonb 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607330/

相关文章:

postgresql - 如何有效地选择先前的非空值?

java - 如何修复 spring boot 数据 jpa UnsatisfiedDependencyException

java - 使用 Hibernate Criteria 加入而不使用 Alias on Restriction

python - 将带有 `\` 的字符串转换为 json 或字典数据

postgresql - 在 PostgreSQL 中将行转换为数组

hibernate - Grails:保存对象时出错,很难理解,请勿使用 'property'关键字

java - 有没有Java库提供ASCII特殊字符列表?

java - 为什么我们不能将两个推断变量作为匿名类相互分配?

java - 我收到 exception-org.apache.catalina.core.ApplicationDispatcher.invoke 抛出异常 java.lang.IllegalStateException

java - 为什么处理消息不起作用