Skip to content

Commit 7b92a38

Browse files
abialasKevinGilmore
authored andcommitted
BAEL-1679 (eugenp#4149)
* BAEL-1412 add java 8 spring data features * BAEL-21 new HTTP API overview * BAEL-21 fix executor * BAEL-1432 add custom gradle task * BAEL-1567 add samples of cookie and session in serlvet * BAEL-1567 use stream api * BAEL-1567 fix optional * BAEL-1679 add query annotation jpa spring data * BAEL-1679 added new junits * BAEL-1679 use assertJ, use givenWhenThen naming convention * BAEL-1679 move query annotation examples to persistence modules * BAEL-1679 fix formatting
1 parent 54d37ea commit 7b92a38

File tree

5 files changed

+447
-277
lines changed

5 files changed

+447
-277
lines changed

persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
@EnableTransactionManagement
2525
@PropertySource({ "classpath:persistence-h2.properties" })
2626
@ComponentScan({ "org.baeldung.persistence" })
27-
@EnableJpaRepositories(basePackages = "org.baeldung.persistence.dao")
27+
@EnableJpaRepositories(basePackages = { "org.baeldung.persistence.dao", "org.baeldung.persistence.repository" })
2828
public class PersistenceJPAConfigL2Cache {
2929

3030
@Autowired
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package org.baeldung.persistence.model;
2+
3+
import javax.persistence.Entity;
4+
import javax.persistence.GeneratedValue;
5+
import javax.persistence.Id;
6+
import javax.persistence.Table;
7+
8+
@Entity
9+
@Table(name = "users")
10+
public class User {
11+
12+
@Id
13+
@GeneratedValue
14+
private Integer id;
15+
private String name;
16+
private Integer status;
17+
18+
public User() {
19+
}
20+
21+
public User(String name, Integer status) {
22+
this.name = name;
23+
this.status = status;
24+
}
25+
26+
public Integer getId() {
27+
return id;
28+
}
29+
30+
public void setId(Integer id) {
31+
this.id = id;
32+
}
33+
34+
public String getName() {
35+
return name;
36+
}
37+
38+
public void setName(String name) {
39+
this.name = name;
40+
}
41+
42+
public Integer getStatus() {
43+
return status;
44+
}
45+
46+
public void setStatus(Integer status) {
47+
this.status = status;
48+
}
49+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package org.baeldung.persistence.repository;
2+
3+
import org.baeldung.persistence.model.User;
4+
import org.springframework.data.domain.Page;
5+
import org.springframework.data.domain.Pageable;
6+
import org.springframework.data.domain.Sort;
7+
import org.springframework.data.jpa.repository.JpaRepository;
8+
import org.springframework.data.jpa.repository.Modifying;
9+
import org.springframework.data.jpa.repository.Query;
10+
import org.springframework.data.repository.query.Param;
11+
import org.springframework.stereotype.Repository;
12+
13+
import java.util.Collection;
14+
import java.util.List;
15+
16+
@Repository("userRepository")
17+
public interface UserRepository extends JpaRepository<User, Integer> {
18+
19+
@Query("SELECT u FROM User u WHERE u.status = 1")
20+
Collection<User> findAllActiveUsers();
21+
22+
@Query(value = "SELECT * FROM USERS u WHERE u.status = 1", nativeQuery = true)
23+
Collection<User> findAllActiveUsersNative();
24+
25+
@Query("SELECT u FROM User u WHERE u.status = ?1")
26+
User findUserByStatus(Integer status);
27+
28+
@Query(value = "SELECT * FROM Users u WHERE u.status = ?1", nativeQuery = true)
29+
User findUserByStatusNative(Integer status);
30+
31+
@Query("SELECT u FROM User u WHERE u.status = ?1 and u.name = ?2")
32+
User findUserByStatusAndName(Integer status, String name);
33+
34+
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
35+
User findUserByStatusAndNameNamedParams(@Param("status") Integer status, @Param("name") String name);
36+
37+
@Query(value = "SELECT * FROM Users u WHERE u.status = :status AND u.name = :name", nativeQuery = true)
38+
User findUserByStatusAndNameNamedParamsNative(@Param("status") Integer status, @Param("name") String name);
39+
40+
@Query("SELECT u FROM User u WHERE u.status = :status and u.name = :name")
41+
User findUserByUserStatusAndUserName(@Param("status") Integer userStatus, @Param("name") String userName);
42+
43+
@Query("SELECT u FROM User u WHERE u.name like ?1%")
44+
User findUserByNameLike(String name);
45+
46+
@Query("SELECT u FROM User u WHERE u.name like :name%")
47+
User findUserByNameLikeNamedParam(@Param("name") String name);
48+
49+
@Query(value = "SELECT * FROM users u WHERE u.name LIKE ?1%", nativeQuery = true)
50+
User findUserByNameLikeNative(String name);
51+
52+
@Query(value = "SELECT u FROM User u")
53+
List<User> findAllUsers(Sort sort);
54+
55+
@Query(value = "SELECT u FROM User u ORDER BY id")
56+
Page<User> findAllUsersWithPagination(Pageable pageable);
57+
58+
@Query(value = "SELECT * FROM Users ORDER BY id \n-- #pageable\n", countQuery = "SELECT count(*) FROM Users", nativeQuery = true)
59+
Page<User> findAllUsersWithPaginationNative(Pageable pageable);
60+
61+
@Modifying
62+
@Query("update User u set u.status = :status where u.name = :name")
63+
int updateUserSetStatusForName(@Param("status") Integer status, @Param("name") String name);
64+
65+
@Modifying
66+
@Query(value = "UPDATE Users u SET u.status = ? WHERE u.name = ?", nativeQuery = true)
67+
int updateUserSetStatusForNameNative(Integer status, String name);
68+
69+
}

0 commit comments

Comments
 (0)