1

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.

Phenomenal One
  • 2,501
  • 4
  • 19
  • 29
Artie
  • 47
  • 9
  • 2
    Sure. Have you tried writing the query? What difficulty did you face? Have you read the documentation of JPQL to know how to write it, look at examples? – JB Nizet Sep 17 '18 at 16:34

0 Answers0