spring + hibernate + abstract method

67 views
Skip to first unread message

Krzysztof W.

unread,
Jul 6, 2022, 7:20:10 AM7/6/22
to Querydsl
Hello, i have an abstract class with abstract method  getArea() i have some classes like circle, rectangle that extends after abstract class figure . I not saving results from abstract method(getArea) to database. I want to make query to get objects with specfic range of area ex " ?fromArea=10&toArea=20 " . How to project booleanbuilder query ? 

public Predicate toPredicate() {
BooleanBuilder booleanBuilder = new BooleanBuilder();

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Entity
@Getter
@Setter
@NoArgsConstructor
public abstract class Figure {

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@Column(name = "id")
private int id;
private String username;
private LocalDateTime dataCreated;
private String type;
private double area;
public abstract double getArea();
public abstract Map<String, Double> getParameters();


@Entity
@Getter
@Setter
@NoArgsConstructor
public class Circle extends Figure{
@NotNull
private Double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return radius * radius * Math.PI;
}

@Override
public Map<String, Double> getParameters() {
Map<String, Double > map = new HashMap<>();
map.put("radius", radius);
return map;
}


@Getter
@Setter
public class CreateSearchRequest {
private double areaFrom;
private double areaTo;
@DateTimeFormat(pattern = "yyyy-MM-dd-HH:mm")
private LocalDateTime fromDate;
@DateTimeFormat(pattern = "yyyy-MM-dd-HH:mm")
private LocalDateTime toDate;


public Predicate toPredicate() {
BooleanBuilder booleanBuilder = new BooleanBuilder();
Optional.ofNullable(fromDate).map(QFigure.figure.dataCreated::goe).ifPresent(booleanBuilder::and);
Optional.ofNullable(toDate).map(QFigure.figure.dataCreated::loe).ifPresent(booleanBuilder::and);
return booleanBuilder;
Reply all
Reply to author
Forward
0 new messages