spring-data-jpa - QuerySyntaxException:期待关闭,在第 1 行附近发现“空”
问题描述
我在使用 Hibernate 运行查询时遇到了一些麻烦。给定以下实体...
@Getter
@EqualsAndHashCode
@ToString
@Entity
@Table(name = "configuration")
@IdClass(ConfigurationPk.class)
@EntityListeners(AuditingEntityListener.class)
public class Configuration implements Persistable<UUID> {
@Id
@Column(name = "id", nullable = false, updatable = false)
@NotNull
@Setter
private UUID id;
@Id
@Column(name = "version", nullable = false, updatable = false)
@NotNull
@Setter
private int version;
@Column(name = "close_date")
@Setter
private LocalDateTime closeDate;
@Column(name = "definition")
@Lob
@Setter
private String definition;
public boolean isNew() {
return closeDate == null;
}
}
...以及以下复合主键:
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@ToString
public class ConfigurationPk implements Serializable {
private UUID id;
private int version;
}
我试图将自定义查询与该findAll
方法相关联:
@Repository
public interface ConfigurationRepository extends JpaRepository<Confguration, UUID> {
...
@Query(value = "SELECT c FROM Configuratin c"
+ " WHERE c.closeDate IS NULL"
+ " AND (c.id, c.version) IN (SELECT c.id, MAX(c.version) AS version"
+ " FROM Configuration c GROUP BY c.id ORDER BY c.id)", nativeQuery = true)
List<Configuration> findAll();
}
上面的查询对我来说看起来不错......但是如果我们查看错误消息,似乎缺少最后的右括号:
org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'null' near line 1, column 281 [select count(q) FROM com.avaloq.awp.profiling.persistence.model.questionnaire.QuestionnairePo q WHERE q.closeDate IS NULL AND (q.id, q.version) IN (SELECT q.id, MAX(q.version) AS version FROM com.avaloq.awp.profiling.persistence.model.questionnaire.QuestionnairePo q GROUP BY q.id]
我错过了什么吗?非常感谢。
解决方案
推荐阅读
- powershell - 奇怪的 CSV 标头空白处理
- vue.js - 如何将外部获取的数据传输到 vue 中使用和显示?
- c# - 在 csharp 中获取特定范围的枚举值
- android - 刷新适配器时回收器视图项相互重叠
- javascript - 使用java脚本的HTML字段最小值
- javascript - Javascript:如何分隔 div
- php - joedixon/laravel 翻译在更新期间不起作用
- java - 从托管 bean 中的 ADF SelectOneChoice 获取选定项目
- ios - 如何检查状态是否已授予 HealthKit 权限
- amazon-web-services - 使用 cloudformation+ 索引创建的 AWS Elasticsearch 部署