Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.xuejike:hibernate-lambda-query:0.1.5'
}
dependencies {
implementation("com.github.xuejike:hibernate-lambda-query:0.1.5")
}
<dependency>
<groupId>com.github.xuejike</groupId>
<artifactId>hibernate-lambda-query</artifactId>
<version>0.1.5</version>
</dependency>
libraryDependencies += "com.github.xuejike" % "hibernate-lambda-query" % "0.1.5"
:dependencies [[com.github.xuejike/hibernate-lambda-query "0.1.5"]]
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.xuejike</groupId>
<artifactId>hibernate-lambda-query</artifactId>
<version>0.1.4bate2</version>
</dependency>
// eq 查询
LambdaCriteria<User> lambdaCriteria = new LambdaCriteria<>(User.class, session);
// select * from user where name = 'name' and sex = '男'
lambdaCriteria.eq(query ->{
query.setName("name");
query.setSex("男");
}).list();
lambdaCriteria = new LambdaCriteria<>(User.class, session);
// select * from user where name = 'name' and ISNULL(sex)
lambdaCriteria.eq(query ->{
query.setName("name");
query.setSex(null);
}).list();
lambdaCriteria = new LambdaCriteria<>(User.class, session);
// like 查询
//select * from user where name like '%name%'
lambdaCriteria.like(query ->{
query.setName("%name%");
}).list();
lambdaCriteria = new LambdaCriteria<>(User.class, session);
// ne 查询
//select * from user where name <> 'name' and name <> 'pp'
lambdaCriteria.ne(query -> {
query.setName("name");
query.setName("pp");
}).list();
lambdaCriteria = new LambdaCriteria<>(User.class, session);
// 组合使用
// sselect * from user where open =1 and name like '%xx%' and sex <> '女'
lambdaCriteria
.eq(query -> query.setOpen(true))
.like(query -> query.setName("%xx%"))
.ne(query -> query.setSex("女")).list();
// 分页 起始值 1
lambdaCriteria = new LambdaCriteria<>(User.class, session);
lambdaCriteria
.eq(query -> query.setOpen(true))
.like(query -> query.setName("%xx%"))
.ne(query -> query.setSex("女")).list(1,10);
// SQL -> where username='xuejike' and (name='xjk' and nickname='xuejike') or (name='xuejike')
userDao.criteriaQuery()
.eq(query -> query.setUsername("xuejike"))
.or(where->{
where.eq(query ->{
query.setName("xjk");
query.setNickname("xuejike");
});
})
.or(where->{
where.eq(query ->{
query.setName("xuejike");}
);
}).list();
//Join 默认连接方式为 Inner Join
// SQL from user inner join company on company.id=user.company_id where username='xuejike' and company.id=1
userDao.criteriaQuery().eq(query -> {
query.setUsername("xuejike");
query.getCompany().setId(1L);
}).list();
// SQL from user inner join company on company.id=user.company_id where username = 'xuejike' and company.id=1
userDao.criteriaQuery().eq(query -> {
query.setUsername("xuejike");
query.getCompany().setId(1L);
}).list();
// SQL from user left outer join company on company.id=user.company_id where username = 'xuejike' and company.id=1
userDao.criteriaQuery().eq(query -> {
query.setUsername("xuejike");
query.getCompany().setId(1L);
}).setJoinType("company",JoinType.LEFT_OUTER_JOIN).list();
// SQL from user inner join company on company.id=user.company_id where username='xuejike' and company.id=1
userDao.criteriaQuery().eq(query -> {
query.setUsername("xuejike");
}).join("company",Company.class,where->{
where.eq(query -> {
query.setId(1L);
});
},JoinType.INNER_JOIN).list();