I have question. I have 3 entities Book->Part->Page with relationships.
Book.java
@Entity
@Table(name = "Book")
public class Book{
@ID
@Column(name = "id")
private Long id;
@OneToMany
@JoinColumn(name="bookid", referencedColumnName="id")
private Set<Part> parts = new HashSet<Part>;
}
Part.java
@Entity
@Table(name = "Part")
public class Part{
@ID
@Column(name = "id")
private Long id;
@Column(name="bookid")
private Long bookid;
@ManyToMany
@JoinTable(name="partpage",
joinColumns = @JoinColumn(name = "id")
inverseJoinColumns = @JoinColumn(name = "pageid")
private Set<Page> pages = new HashSet<Page>;
}
Page.java
@Entity
@Table(name = "Page")
public class part{
@ID
@Column(name = "pageid")
private Long id;
@Column(name="color")
private String color;
@Column(name="type")
private String type;
}
I have query = "Select b FROM book b". This query returns all books with all relation parts and pages.
What I need. I need count how many pages with color = green and type = comedy in each Book. Is it possible to do it in one query?
Thank you all.