Skip to content

Commit ad97659

Browse files
committed
Fix jsonb support to work with 5.x
1 parent 8af6a54 commit ad97659

File tree

10 files changed

+60
-35
lines changed

10 files changed

+60
-35
lines changed

pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
</developer>
2121
</developers>
2222
<properties>
23-
<java.version>1.8</java.version>
24-
<maven.compiler.target>1.8</maven.compiler.target>
23+
<java.version>11</java.version>
24+
<maven.compiler.target>11</maven.compiler.target>
2525
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
26-
<spring-boot.version>2.0.0.RELEASE</spring-boot.version>
27-
<spring-data-releasetrain.version>Kay-RELEASE</spring-data-releasetrain.version>
26+
<spring-boot.version>2.7.18</spring-boot.version>
27+
<spring-data.version>2021.2.18</spring-data.version>
2828
<querydsl.version>4.1.4</querydsl.version>
2929
<rsql-parser.version>2.1.0</rsql-parser.version>
3030
<lombok.version>1.18.10</lombok.version>
@@ -54,8 +54,8 @@
5454
</dependency>
5555
<dependency>
5656
<groupId>org.springframework.data</groupId>
57-
<artifactId>spring-data-releasetrain</artifactId>
58-
<version>${spring-data-releasetrain.version}</version>
57+
<artifactId>spring-data-bom</artifactId>
58+
<version>${spring-data.version}</version>
5959
<type>pom</type>
6060
<scope>import</scope>
6161
</dependency>

rsql-common/src/test/java/io/github/perplexhub/rsql/UnknownPropertyExceptionTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import static org.assertj.core.api.Assertions.assertThat;
44

55
import io.github.perplexhub.rsql.model.User;
6-
import org.junit.Test;
6+
import org.junit.jupiter.api.Test;
77

88
public class UnknownPropertyExceptionTest {
99

rsql-jpa-spring-boot-starter/src/main/java/io/github/perplexhub/rsql/RSQLJPAAutoConfiguration.java

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import static java.util.stream.Collectors.toMap;
55

66
import io.github.perplexhub.rsql.RSQLJPAAutoConfiguration.HibernateEntityManagerDatabaseConfiguration;
7-
import jakarta.persistence.EntityManager;
7+
import javax.persistence.EntityManager;
88
import java.util.IdentityHashMap;
99
import java.util.Map;
1010
import java.util.Map.Entry;
@@ -13,7 +13,6 @@
1313
import lombok.extern.slf4j.Slf4j;
1414
import org.hibernate.Session;
1515
import org.hibernate.dialect.AbstractHANADialect;
16-
import org.hibernate.dialect.CockroachDialect;
1716
import org.hibernate.dialect.DB2Dialect;
1817
import org.hibernate.dialect.DerbyDialect;
1918
import org.hibernate.dialect.Dialect;
@@ -67,12 +66,12 @@ public EntityManagerDatabase entityManagerDatabase(ObjectProvider<EntityManager>
6766
.filter(Objects::nonNull)
6867
.collect(collectingAndThen(
6968
toMap(Entry::getKey, Entry::getValue, (db1, db2) -> db1, IdentityHashMap::new),
70-
EntityManagerDatabase::new
69+
m -> new EntityManagerDatabase(m)
7170
));
7271
}
7372

7473
private Database toDatabase(Dialect dialect) {
75-
if (dialect instanceof PostgreSQLDialect || dialect instanceof CockroachDialect) {
74+
if (dialect instanceof PostgreSQLDialect) {
7675
return Database.POSTGRESQL;
7776
} else if (dialect instanceof MySQLDialect) {
7877
return Database.MYSQL;
@@ -98,7 +97,33 @@ private Database toDatabase(Dialect dialect) {
9897
}
9998
}
10099

101-
record EntityManagerDatabase(Map<EntityManager, Database> value) {
100+
public static final class EntityManagerDatabase {
101+
private final Map<EntityManager, Database> value;
102102

103+
public EntityManagerDatabase(Map<EntityManager, Database> value) {
104+
this.value = value;
105+
}
106+
107+
public Map<EntityManager, Database> value() {
108+
return value;
109+
}
110+
111+
@Override
112+
public boolean equals(Object obj) {
113+
if (this == obj) return true;
114+
if (obj == null || getClass() != obj.getClass()) return false;
115+
EntityManagerDatabase that = (EntityManagerDatabase) obj;
116+
return Objects.equals(value, that.value);
117+
}
118+
119+
@Override
120+
public int hashCode() {
121+
return Objects.hash(value);
122+
}
123+
124+
@Override
125+
public String toString() {
126+
return "EntityManagerDatabase[value=" + value + "]";
127+
}
103128
}
104129
}

rsql-jpa-spring-boot-starter/src/test/java/io/github/perplexhub/rsql/RSQLSpecificationSupportTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import static io.github.perplexhub.rsql.RSQLJPASupport.*;
44
import static org.hamcrest.CoreMatchers.*;
5-
import static org.junit.Assert.*;
5+
import static org.hamcrest.MatcherAssert.assertThat;
66

77
import java.util.List;
88

9-
import org.junit.Test;
10-
import org.junit.runner.RunWith;
9+
import org.junit.jupiter.api.Test;
1110
import org.springframework.beans.factory.annotation.Autowired;
1211
import org.springframework.boot.test.context.SpringBootTest;
1312
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
@@ -20,7 +19,6 @@
2019
import lombok.extern.slf4j.Slf4j;
2120

2221
@Slf4j
23-
@RunWith(SpringRunner.class)
2422
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.NONE)
2523
public class RSQLSpecificationSupportTest {
2624

rsql-jpa/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@
5454
</dependency>
5555
<dependency>
5656
<groupId>io.hypersistence</groupId>
57-
<artifactId>hypersistence-utils-hibernate-60</artifactId>
58-
<version>3.5.2</version>
57+
<artifactId>hypersistence-utils-hibernate-55</artifactId>
58+
<version>3.9.5</version>
5959
<scope>test</scope>
6060
</dependency>
6161
<dependency>

rsql-jpa/src/main/java/io/github/perplexhub/rsql/RSQLJPAPredicateConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import static io.github.perplexhub.rsql.RSQLOperators.*;
44

5-
import jakarta.persistence.Column;
5+
import javax.persistence.Column;
66
import java.lang.reflect.Field;
77
import java.lang.reflect.Modifier;
88
import java.util.*;

rsql-jpa/src/test/java/io/github/perplexhub/rsql/RSQLJPASupportPostgresJsonTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
import io.github.perplexhub.rsql.model.PostgresJsonEntity;
88
import io.github.perplexhub.rsql.repository.jpa.postgres.PostgresJsonEntityRepository;
9-
import jakarta.persistence.EntityManager;
9+
import javax.persistence.EntityManager;
1010
import java.util.List;
1111
import java.util.Map;
1212
import java.util.stream.Stream;
@@ -26,9 +26,11 @@ class RSQLJPASupportPostgresJsonTest {
2626

2727
@Autowired
2828
private PostgresJsonEntityRepository repository;
29+
@Autowired
30+
private EntityManager em;
2931

3032
@BeforeEach
31-
void setup(@Autowired EntityManager em) {
33+
void setup() {
3234
RSQLVisitorBase.setEntityManagerDatabase(Map.of(em, Database.POSTGRESQL));
3335
}
3436

@@ -43,7 +45,8 @@ void tearDown() {
4345
@MethodSource("data")
4446
void testJson(List<PostgresJsonEntity> users, String rsql, List<PostgresJsonEntity> expected) {
4547
//given
46-
repository.saveAllAndFlush(users);
48+
repository.saveAll(users);
49+
repository.flush();
4750

4851
//when
4952
List<PostgresJsonEntity> result = repository.findAll(toSpecification(rsql));

rsql-jpa/src/test/java/io/github/perplexhub/rsql/model/PostgresJsonEntity.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package io.github.perplexhub.rsql.model;
22

33
import io.hypersistence.utils.hibernate.type.json.JsonType;
4-
import jakarta.persistence.Column;
5-
import jakarta.persistence.Entity;
6-
import jakarta.persistence.GeneratedValue;
7-
import jakarta.persistence.Id;
4+
import javax.persistence.Column;
5+
import javax.persistence.Entity;
6+
import javax.persistence.GeneratedValue;
7+
import javax.persistence.Id;
88
import java.util.ArrayList;
99
import java.util.HashMap;
1010
import java.util.List;
@@ -17,20 +17,22 @@
1717
import lombok.Setter;
1818
import lombok.ToString;
1919
import org.hibernate.annotations.Type;
20+
import org.hibernate.annotations.TypeDef;
2021

2122
@Getter
2223
@Setter
2324
@EqualsAndHashCode(of = "id")
2425
@ToString
2526
@Entity
2627
@NoArgsConstructor
28+
@TypeDef(name="jsonb", typeClass=JsonType.class)
2729
public class PostgresJsonEntity {
2830

2931
@Id
3032
@GeneratedValue
3133
private UUID id;
3234

33-
@Type(JsonType.class)
35+
@Type(type="jsonb")
3436
@Column(columnDefinition = "jsonb")
3537
private Map<String, Object> properties = new HashMap<>();
3638

rsql-querydsl-spring-boot-starter/src/test/java/io/github/perplexhub/rsql/RSQLQueryDslSupportTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
import static io.github.perplexhub.rsql.RSQLJPASupport.*;
44
import static io.github.perplexhub.rsql.RSQLQueryDslSupport.*;
55
import static org.hamcrest.CoreMatchers.*;
6-
import static org.junit.Assert.*;
6+
import static org.hamcrest.MatcherAssert.assertThat;
77

88
import java.util.List;
99

10-
import org.junit.Test;
11-
import org.junit.runner.RunWith;
10+
import org.junit.jupiter.api.Test;
1211
import org.springframework.beans.factory.annotation.Autowired;
1312
import org.springframework.boot.test.context.SpringBootTest;
1413
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
@@ -23,7 +22,6 @@
2322
import lombok.extern.slf4j.Slf4j;
2423

2524
@Slf4j
26-
@RunWith(SpringRunner.class)
2725
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.NONE)
2826
public class RSQLQueryDslSupportTest {
2927

rsql-querydsl/src/test/java/io/github/perplexhub/rsql/RSQLQueryDslSupportTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
import static io.github.perplexhub.rsql.RSQLQueryDslSupport.*;
55
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
66
import static org.hamcrest.CoreMatchers.*;
7-
import static org.junit.Assert.*;
7+
import static org.hamcrest.MatcherAssert.assertThat;
8+
import static org.junit.jupiter.api.Assertions.assertEquals;
89

910
import java.util.HashMap;
1011
import java.util.List;
1112
import java.util.Map;
1213

13-
import org.junit.Test;
14-
import org.junit.runner.RunWith;
14+
import org.junit.jupiter.api.Test;
1515
import org.springframework.beans.factory.annotation.Autowired;
1616
import org.springframework.boot.test.context.SpringBootTest;
1717
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
@@ -25,7 +25,6 @@
2525
import lombok.extern.slf4j.Slf4j;
2626

2727
@Slf4j
28-
@RunWith(SpringRunner.class)
2928
@SpringBootTest(classes = Application.class, webEnvironment = WebEnvironment.NONE)
3029
public class RSQLQueryDslSupportTest {
3130

0 commit comments

Comments
 (0)