How to filter an entity in hibernate with hibernate filters

13,478

Ok it think this should do the trick:

Entities

public class Student {

    private int id;

    @OneToMany(mappedBy = "student")
    @Filter(name = "defaultCoursesFilter")   
    private List<Course> courses;

}

@FilterDef(name = "defaultCoursesFilter"
                , defaultCondition=" notes > 70")
public class Course {

    private int id;

    private String name;

    private float note;

    @ManyToOne
    @Filter(name = "defaultClassromFilter")
    private Classroom classroom;

}


@FilterDef(name = "defaultClassromFilter"
                , defaultCondition=" id  = 23")
public class Classroom {

    private int id;

    private String classroom;

} 

Before query

Session session = sessionFactory.getCurrentSession();
session.enableFilter("defaultCoursesFilter");
session.enableFilter("defaultClassromFilter");

// query
Share:
13,478

Related videos on Youtube

Jason Glez
Author by

Jason Glez

Updated on June 04, 2022

Comments

  • Jason Glez
    Jason Glez almost 2 years

    I need to filter an entity in a list of objects, for example:

    public class Student {
    
        private int id;
    
        private List<Course> courses;
    
    }
    
    public class Course {
    
        private int id;
    
        private String name;
    
        private float note;
    
        private Classroom classroom;
    
    }
    
    public class Classroom {
    
        private int id;
    
        private String classroom;
    
    } 
    

    How to obtain a student object with a list of courses with only notes greater than 70, and located in classroom 23 (for example)?

    Is there a way to use the name of the entity instead of the one of the column of the database?

    Or how do I associate with sql the alias generated by hibernate for the entity?

    I attach a link from the hibernate filters: https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch19.html

    • Maciej Kowalski
      Maciej Kowalski over 7 years
      Have you tried any configuration yourself? Maybe you can post it and lets see whats wrong with it. Did you get any errors etc.
    • Jason Glez
      Jason Glez over 7 years
      I just want to know if it can be filtered by the java entity, not by the database entity.
    • Jason Glez
      Jason Glez over 7 years
      And how to do the join with the alias that generates hibernate dynamically.
  • Jason Glez
    Jason Glez over 7 years
    Thank you very much, I'll try.