DATAJPA-188 - Added support for After and Before query creation.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.jpa.domain.sample;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -27,6 +28,8 @@ import javax.persistence.Id;
|
||||
import javax.persistence.ManyToMany;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.NamedQuery;
|
||||
import javax.persistence.Temporal;
|
||||
import javax.persistence.TemporalType;
|
||||
|
||||
/**
|
||||
* Domain class representing a person emphasizing the use of {@code AbstractEntity}. No declaration of an id is
|
||||
@@ -38,8 +41,6 @@ import javax.persistence.NamedQuery;
|
||||
@NamedQuery(name = "User.findByEmailAddress", query = "SELECT u FROM User u WHERE u.emailAddress = ?1")
|
||||
public class User {
|
||||
|
||||
private static final long serialVersionUID = 8653688953355455933L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Integer id;
|
||||
@@ -47,6 +48,8 @@ public class User {
|
||||
private String lastname;
|
||||
private int age;
|
||||
private boolean active;
|
||||
@Temporal(TemporalType.TIMESTAMP)
|
||||
private Date createdAt;
|
||||
|
||||
@Column(nullable = false, unique = true)
|
||||
private String emailAddress;
|
||||
@@ -67,6 +70,7 @@ public class User {
|
||||
|
||||
this.roles = new HashSet<Role>();
|
||||
this.colleagues = new HashSet<User>();
|
||||
this.createdAt = new Date();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -270,6 +274,13 @@ public class User {
|
||||
this.manager = manager;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the createdAt
|
||||
*/
|
||||
public Date getCreatedAt() {
|
||||
return createdAt;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
||||
@@ -77,12 +77,13 @@ public class UserRepositoryTests {
|
||||
Integer id;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
public void setUp() throws Exception {
|
||||
|
||||
firstUser = new User("Oliver", "Gierke", "gierke@synyx.de");
|
||||
firstUser.setAge(28);
|
||||
secondUser = new User("Joachim", "Arrasz", "arrasz@synyx.de");
|
||||
secondUser.setAge(35);
|
||||
Thread.sleep(10);
|
||||
thirdUser = new User("Dave", "Matthews", "no@email.com");
|
||||
thirdUser.setAge(43);
|
||||
}
|
||||
@@ -752,6 +753,32 @@ public class UserRepositoryTests {
|
||||
assertThat(result, hasItem(thirdUser));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAJPA-188
|
||||
*/
|
||||
@Test
|
||||
public void executesFinderWithAfterKeywordCorrectly() {
|
||||
|
||||
flushTestUsers();
|
||||
|
||||
List<User> result = repository.findByCreatedAtAfter(secondUser.getCreatedAt());
|
||||
assertThat(result.size(), is(1));
|
||||
assertThat(result, hasItems(thirdUser));
|
||||
}
|
||||
|
||||
/**
|
||||
* @see DATAJPA-188
|
||||
*/
|
||||
@Test
|
||||
public void executesFinderWithBeforeKeywordCorrectly() {
|
||||
|
||||
flushTestUsers();
|
||||
|
||||
List<User> result = repository.findByCreatedAtBefore(thirdUser.getCreatedAt());
|
||||
assertThat(result.size(), is(2));
|
||||
assertThat(result, hasItems(firstUser, secondUser));
|
||||
}
|
||||
|
||||
protected void flushTestUsers() {
|
||||
|
||||
firstUser = repository.save(firstUser);
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
package org.springframework.data.jpa.repository.sample;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.persistence.QueryHint;
|
||||
@@ -213,4 +214,14 @@ public interface UserRepository extends JpaRepository<User, Integer>, JpaSpecifi
|
||||
*/
|
||||
// @Query("select u.colleagues from User u where u = ?1")
|
||||
// List<User> findColleaguesFor(User user);
|
||||
|
||||
/**
|
||||
* @see DATAJPA-188
|
||||
*/
|
||||
List<User> findByCreatedAtBefore(Date date);
|
||||
|
||||
/**
|
||||
* @see DATAJPA-188
|
||||
*/
|
||||
List<User> findByCreatedAtAfter(Date date);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user