eu separei a busca em duas partes.
a entidade2 buscar a entidade3 traz a lista perfeitamente.
o problema tá na entidade1 trazer as entidades2...
bom, vou por o código aqui pra ficar mais fácil, às vezes fiz uma coisa errada nos relacionamentos...
Essa é a minha entidade1 com UmParaMuitos
@Entity
public class Extract {
@Id @GeneratedValue
private Long extractID;
private Status status;
private PaymentMethod payment;
@OneToMany(cascade=CascadeType.ALL,
fetch=FetchType.EAGER,
mappedBy="extract")
private List<Statement> statements;
@OneToMany(cascade=CascadeType.ALL,
fetch=FetchType.LAZY,
mappedBy="extract")
private List<History> histories;
@Temporal(TemporalType.TIMESTAMP)
private Calendar createDate;
@Temporal(TemporalType.TIMESTAMP)
private Calendar lastModificationDate;
...
}
Essa é a minha entidade2 com MuitosPraUm e UmPraUm
@Entity
public class Statement {
@Id @GeneratedValue
private Long statementID;
private DebitCredit dc;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="userID")
private User user;
private String description;
private Integer value;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="extractID")
private Extract extract;
...
}
e por último, e não menos importante, essa é minha entidade3 de relacionamento UmPraUm
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="type", discriminatorType=DiscriminatorType.INTEGER)
public abstract class User {
@Id @GeneratedValue
private Long userID;
@Column(nullable=false, updatable=false, unique=true)
private String username;
private String password;
@Column(nullable=false, unique=true)
private String email;
private Status status;
@Column(insertable=false, updatable=false)
private UserType type;
@Temporal(TemporalType.TIMESTAMP)
private Calendar createDate;
@Temporal(TemporalType.TIMESTAMP)
private Calendar lastModificationDate;
@Temporal(TemporalType.TIMESTAMP)
private Calendar lastAccessDate;
...
}
:roll: