Use new projection capabilities in Spring Data Hopper.
Uses interfaces instead of DTOs to implement projections. Works around DATAJPA-864 [0]. [0] https://jira.spring.io/browse/DATAJPA-864
This commit is contained in:
committed by
Stephane Nicoll
parent
b205e02e33
commit
e703997be2
@@ -16,48 +16,15 @@
|
||||
|
||||
package sample.data.jpa.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.math.RoundingMode;
|
||||
public interface HotelSummary {
|
||||
|
||||
public class HotelSummary implements Serializable {
|
||||
City getCity();
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
String getName();
|
||||
|
||||
private static final MathContext MATH_CONTEXT = new MathContext(2,
|
||||
RoundingMode.HALF_UP);
|
||||
Double getAverageRating();
|
||||
|
||||
private final City city;
|
||||
|
||||
private final String name;
|
||||
|
||||
private final Double averageRating;
|
||||
|
||||
private final Integer averageRatingRounded;
|
||||
|
||||
public HotelSummary(City city, String name, Double averageRating) {
|
||||
this.city = city;
|
||||
this.name = name;
|
||||
this.averageRating = averageRating == null ? null
|
||||
: new BigDecimal(averageRating, MATH_CONTEXT).doubleValue();
|
||||
this.averageRatingRounded = averageRating == null ? null
|
||||
: (int) Math.round(averageRating);
|
||||
}
|
||||
|
||||
public City getCity() {
|
||||
return this.city;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public Double getAverageRating() {
|
||||
return this.averageRating;
|
||||
}
|
||||
|
||||
public Integer getAverageRatingRounded() {
|
||||
return this.averageRatingRounded;
|
||||
default Integer getAverageRatingRounded() {
|
||||
return getAverageRating() == null ? null : (int) Math.round(getAverageRating());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,26 +16,9 @@
|
||||
|
||||
package sample.data.jpa.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
public interface RatingCount {
|
||||
|
||||
public class RatingCount implements Serializable {
|
||||
Rating getRating();
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final Rating rating;
|
||||
|
||||
private final long count;
|
||||
|
||||
public RatingCount(Rating rating, long count) {
|
||||
this.rating = rating;
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
public Rating getRating() {
|
||||
return this.rating;
|
||||
}
|
||||
|
||||
public long getCount() {
|
||||
return this.count;
|
||||
}
|
||||
long getCount();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user