ORA-00932:数据类型不一致:预期-克隆休眠/ springboot

时间:2018-12-09 10:30:59

标签: java oracle hibernate spring-boot blob

使用带有Oracle的休眠状态提取带有存储为base64 LOB的头像图像的记分板数据。我已经做过一些研究,似乎所有其他类似的帖子都是人们试图通过区分或将其放在where子句中与CLOB数据进行比较。我还阅读了oracle在临时表(视图)中不支持CLOB的情况,如果是这种情况,如何从数据库中获取数据。这样代码可以在内存DB的H2中工作。

查询抛出错误:

select distinct score.userId as userId, sum(score.totalScore) as totalScore, 
    sum(score.timeTaken) as timeTaken, user.image as image
from Score score, User user
where score.userId = user.userId
group by score.userId order by totalScore desc, timeTaken asc

实体:

用户:

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "id_Sequence2")
@SequenceGenerator(name = "id_Sequence2", sequenceName = "ID_SEQ2")
@Column(name = "id", updatable = false, nullable = false)
int id;
int userId;
@Lob
String image;
Date createdDate;
Date lastLoggedIn;

得分:

@Id
@Column(name = "quizID", updatable = false, nullable = false)
int quizId;
@Id
@Column(name = "userID", updatable = false, nullable = false)
int userId;
double totalScore;
@OneToMany(targetEntity=UserQuizRecord.class, fetch=FetchType.EAGER, cascade = { CascadeType.ALL })
List<UserQuizRecord> userQuizRecords;
int timeTaken;
int correctAns;
Date takenDate;

2 个答案:

答案 0 :(得分:0)

检查此链接。

https://forum.hibernate.org/viewtopic.php?f=1&t=998284

因此,DISTINCT不能与CLOB数据类型(即image)一起使用。请检查是否可以解决您的问题。

答案 1 :(得分:0)

我没有解决确切的问题,但是我使用的一种解决方法(虽然不理想,但可行)是我得到了所有内容,除了在1个查询中的图像数据,然后对图像数据进行了另一个查询并将图像连接到之后视图结束。我只是在查询前100个结果,因此这并不是对资源的明智选择。