Skip to content
This repository was archived by the owner on Jan 22, 2024. It is now read-only.

Commit bac6ece

Browse files
committed
Add Maven example for QueryDsl
1 parent 5e883a6 commit bac6ece

File tree

6 files changed

+277
-0
lines changed

6 files changed

+277
-0
lines changed

maven/kotlin-querydsl/.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.DS_Store
2+
3+
generated
4+
generated_tests
5+
6+
.idea/
7+
*.iml
8+
*.iws
9+
*.ipr
10+
11+
target/

maven/kotlin-querydsl/LICENSE.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This project is imported and J2K-ed from this repository:
2+
https://github.com/bsideup/querydsl-gradle-idea

maven/kotlin-querydsl/pom.xml

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
4+
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
5+
6+
<modelVersion>4.0.0</modelVersion>
7+
8+
<groupId>org.jetbrains.kotlin.examples</groupId>
9+
<artifactId>querydsl-maven-example</artifactId>
10+
<version>1.0-SNAPSHOT</version>
11+
12+
<properties>
13+
<kotlin.version>1.2-SNAPSHOT</kotlin.version>
14+
<junit.version>4.12</junit.version>
15+
<main.class>ru.trylogic.querydsl.example.Test</main.class>
16+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
17+
</properties>
18+
19+
<dependencies>
20+
<dependency>
21+
<groupId>com.mysema.querydsl</groupId>
22+
<artifactId>querydsl-jpa</artifactId>
23+
<version>3.6.3</version>
24+
</dependency>
25+
<dependency>
26+
<groupId>com.h2database</groupId>
27+
<artifactId>h2</artifactId>
28+
<version>1.4.187</version>
29+
</dependency>
30+
<dependency>
31+
<groupId>org.hibernate</groupId>
32+
<artifactId>hibernate-entitymanager</artifactId>
33+
<version>4.3.5.Final</version>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.jetbrains.kotlin</groupId>
37+
<artifactId>kotlin-stdlib</artifactId>
38+
<version>${kotlin.version}</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>junit</groupId>
42+
<artifactId>junit</artifactId>
43+
<version>${junit.version}</version>
44+
<scope>test</scope>
45+
</dependency>
46+
</dependencies>
47+
48+
<build>
49+
<plugins>
50+
<plugin>
51+
<artifactId>kotlin-maven-plugin</artifactId>
52+
<groupId>org.jetbrains.kotlin</groupId>
53+
<version>${kotlin.version}</version>
54+
55+
<executions>
56+
<execution>
57+
<id>kapt</id>
58+
<goals>
59+
<goal>kapt</goal>
60+
</goals>
61+
<configuration>
62+
<sourceDirs>
63+
<sourceDir>src/main/kotlin</sourceDir>
64+
<!-- <sourceDir>src/main/java</sourceDir> -->
65+
</sourceDirs>
66+
<annotationProcessorPaths>
67+
<annotationProcessorPath>
68+
<groupId>com.mysema.querydsl</groupId>
69+
<artifactId>querydsl-apt</artifactId>
70+
<version>3.6.3</version>
71+
<classifier>jpa</classifier>
72+
</annotationProcessorPath>
73+
</annotationProcessorPaths>
74+
</configuration>
75+
</execution>
76+
<execution>
77+
<id>compile</id>
78+
<goals>
79+
<goal>compile</goal>
80+
</goals>
81+
<configuration>
82+
<sourceDirs>
83+
<sourceDir>src/main/kotlin</sourceDir>
84+
<sourceDir>src/main/java</sourceDir>
85+
</sourceDirs>
86+
</configuration>
87+
</execution>
88+
<execution>
89+
<id>test-kapt</id>
90+
<goals>
91+
<goal>test-kapt</goal>
92+
</goals>
93+
<configuration>
94+
<sourceDirs>
95+
<sourceDir>src/test/kotlin</sourceDir>
96+
<sourceDir>src/test/java</sourceDir>
97+
</sourceDirs>
98+
<annotationProcessorPaths>
99+
<annotationProcessorPath>
100+
<groupId>com.google.dagger</groupId>
101+
<artifactId>dagger-compiler</artifactId>
102+
<version>2.9</version>
103+
</annotationProcessorPath>
104+
</annotationProcessorPaths>
105+
</configuration>
106+
</execution>
107+
<execution>
108+
<id>test-compile</id>
109+
<goals>
110+
<goal>test-compile</goal>
111+
</goals>
112+
<configuration>
113+
<sourceDirs>
114+
<sourceDir>src/test/kotlin</sourceDir>
115+
<sourceDir>src/test/java</sourceDir>
116+
<sourceDir>target/generated-sources/kapt/test</sourceDir>
117+
</sourceDirs>
118+
</configuration>
119+
</execution>
120+
</executions>
121+
</plugin>
122+
<plugin>
123+
<groupId>org.apache.maven.plugins</groupId>
124+
<artifactId>maven-compiler-plugin</artifactId>
125+
<version>3.5.1</version>
126+
<configuration>
127+
<proc>none</proc>
128+
<source>1.6</source>
129+
<target>1.6</target>
130+
</configuration>
131+
<executions>
132+
<!-- Replacing default-compile as it is treated specially by maven -->
133+
<execution>
134+
<id>default-compile</id>
135+
<phase>none</phase>
136+
</execution>
137+
<!-- Replacing default-testCompile as it is treated specially by maven -->
138+
<execution>
139+
<id>default-testCompile</id>
140+
<phase>none</phase>
141+
</execution>
142+
<execution>
143+
<id>java-compile</id>
144+
<phase>compile</phase>
145+
<goals>
146+
<goal>compile</goal>
147+
</goals>
148+
</execution>
149+
<execution>
150+
<id>java-test-compile</id>
151+
<phase>test-compile</phase>
152+
<goals> <goal>testCompile</goal> </goals>
153+
</execution>
154+
</executions>
155+
</plugin>
156+
<plugin>
157+
<groupId>org.apache.maven.plugins</groupId>
158+
<artifactId>maven-jar-plugin</artifactId>
159+
<version>2.6</version>
160+
<configuration>
161+
<archive>
162+
<manifest>
163+
<addClasspath>true</addClasspath>
164+
<mainClass>${main.class}</mainClass>
165+
</manifest>
166+
</archive>
167+
</configuration>
168+
</plugin>
169+
<plugin>
170+
<groupId>org.codehaus.mojo</groupId>
171+
<artifactId>exec-maven-plugin</artifactId>
172+
<version>1.2.1</version>
173+
<executions>
174+
<execution>
175+
<phase>test</phase>
176+
<goals>
177+
<goal>java</goal>
178+
</goals>
179+
</execution>
180+
</executions>
181+
<configuration>
182+
<mainClass>${main.class}</mainClass>
183+
</configuration>
184+
</plugin>
185+
</plugins>
186+
</build>
187+
</project>
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package ru.trylogic.querydsl.example
2+
3+
import com.mysema.query.jpa.impl.JPAQuery
4+
import org.hibernate.Hibernate
5+
import org.hibernate.SessionFactory
6+
import org.hibernate.cfg.Configuration
7+
import org.hibernate.cfg.Environment
8+
9+
import javax.persistence.EntityManager
10+
import javax.persistence.EntityManagerFactory
11+
import javax.persistence.EntityTransaction
12+
import javax.persistence.Persistence
13+
import java.util.HashMap
14+
15+
import ru.trylogic.querydsl.example.QUser.user
16+
17+
object Test {
18+
@JvmStatic
19+
fun main(args: Array<String>) = Persistence.createEntityManagerFactory("unit").use { emf ->
20+
emf.createEntityManager().use { entityManager ->
21+
val transaction = entityManager.transaction
22+
transaction.begin()
23+
24+
with (entityManager) {
25+
persist(User("Smith"))
26+
persist(User("Gates"))
27+
persist(User("Orlov"))
28+
persist(User("Smirnov"))
29+
persist(User("Orlov"))
30+
31+
flush()
32+
}
33+
34+
transaction.commit()
35+
36+
val query = JPAQuery(entityManager)
37+
38+
val uniqueUserNames = query.from(user)
39+
.where(user.name.like("%ov"))
40+
.groupBy(user.name)
41+
.list(user.name)
42+
43+
println("Unique names: ")
44+
uniqueUserNames.forEach { println(it) }
45+
}
46+
}
47+
}
48+
49+
inline fun <T> EntityManagerFactory.use(f: (EntityManagerFactory) -> T) = try { f(this) } finally { close() }
50+
51+
inline fun <T> EntityManager.use(f: (EntityManager) -> T) = try { f(this) } finally { close() }
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ru.trylogic.querydsl.example
2+
3+
import javax.persistence.Entity
4+
import javax.persistence.GeneratedValue
5+
import javax.persistence.GenerationType
6+
import javax.persistence.Id
7+
8+
@Entity
9+
class User(
10+
val name: String,
11+
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Int = 0)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
3+
<persistence-unit name="unit">
4+
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
5+
<class>ru.trylogic.querydsl.example.User</class>
6+
<properties>
7+
<property name="hibernate.connection.url" value="jdbc:h2:mem:"/>
8+
<property name="connection.jdbc.driver" value="org.h2.Driver"/>
9+
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
10+
<property name="javax.persistence.jdbc.user" value="sa" />
11+
<property name="javax.persistence.jdbc.password" value="" />
12+
<property name="hibernate.hbm2ddl.auto" value="create" />
13+
</properties>
14+
</persistence-unit>
15+
</persistence>

0 commit comments

Comments
 (0)