JPA + Collection

Bom dia,

Estou em duvida com relação a JPA, quando tenho uma tabela em banco e ela contem um FK com outra tabela essa primeira tabela quando criada a entidade tera uma collection que estara os dados desta segunda tabela …

bom vem a diuvida então …

Se eu tiver um registro na primeira tabela e 1 milhão de registros na segunda quando buscar o objeto referente a primeira tabela ele tera uma collection com 1 milhão de registros ??? ou ele somente carregará esta quantidade de registros quando eu consultar a collection ?? caso carregue … como ficaria a memória nào seria problema ??

milha duvida é justamente neste comportamento pois ainda estou estudando sobre JPA.

Se alguem comentar agradeço muito.

Os relacionamentos podem ser do tipo EAGER ou LAZY. No EAGER quando você buscar no banco o objeto persistido na tabela 1, toda a sua coleção existente na tabela 2 será também selecionada. No caso de se usar o LAZY, a lista será inicializada somente quando vc fizer a primeira tentativa de acesso ao seu conteúdo.
O padrão na JPA é o LAZY. quando você cria algum relacionamento one-to-many ou many-to-many, esse é o comportamento padrão. Se quiser colocar EAGER, ai tem que alterar a propriedate “fetch”, algo mais ou menos assim:

@OneToMany(fetch = FetchType.EAGER) //aqui vc poderia colocar FetchType.LAZY tambem, mas já é o default
private List<Blabla> lista = new ArrayList<Blabla>();

Valeu cassio muito agradecido pela explicação, então no caso como estou trabalhando com o modelo padrão não preciso me preocupar com o relacionamento pois sera sempre LAZY, a não ser que consulte os dados … o suposto problema de carga de memória não tera a não ser que seja necessário.

Bacana cara .

Abraço.