diff --git a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java index eb7df8592267..165d262600da 100644 --- a/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java +++ b/hibernate-community-dialects/src/main/java/org/hibernate/community/dialect/H2LegacyDialect.java @@ -1046,6 +1046,11 @@ public String getCaseInsensitiveLike() { } } + @Override + public boolean supportsPartitionBy() { + return getVersion().isSameOrAfter( 1, 4, 200 ); + } + @Override public boolean supportsCaseInsensitiveLike() { return getVersion().isSameOrAfter( 1, 4, 194 ); diff --git a/hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java b/hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java index b1d443717069..b1f866ede713 100644 --- a/hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java +++ b/hibernate-core/src/main/java/org/hibernate/dialect/H2Dialect.java @@ -1055,6 +1055,11 @@ public boolean supportsCaseInsensitiveLike(){ return true; } + @Override + public boolean supportsPartitionBy() { + return true; + } + @Override public boolean supportsBindingNullSqlTypeForSetNull() { return true; diff --git a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/formula/FormulaWithPartitionByTest.java b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/formula/FormulaWithPartitionByTest.java index 05565ddeffcc..ba36e98f1150 100644 --- a/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/formula/FormulaWithPartitionByTest.java +++ b/hibernate-core/src/test/java/org/hibernate/orm/test/mapping/formula/FormulaWithPartitionByTest.java @@ -82,6 +82,7 @@ void tearDown(SessionFactoryScope scope) { public static class DisplayItem implements Serializable { @Id + @Column(name = "DISPLAY_ITEM_ID") private Integer id; @Column(name = "DISCOUNT_CODE") @@ -90,7 +91,7 @@ public static class DisplayItem implements Serializable { @Column(name = "DISCOUNT_VALUE") private Double discountValue; - @Formula("ROW_NUMBER() OVER( PARTITION BY DISCOUNT_CODE ORDER BY SIGN(DISCOUNT_VALUE) DESC )") + @Formula("ROW_NUMBER() OVER(PARTITION BY DISCOUNT_CODE ORDER BY DISPLAY_ITEM_ID)") private Integer itemsByCode; public Integer getId() {