@OneToMany(mappedBy="requisicaoPagamento", cascade=CascadeType.ALL)
public List<ItensComprados> listItensComprados;
Classe ItensComprados:
@ManyToOne
public RequisicaoPagamento requisicaoPagamento;
Porém quando eu faço uma requisição de pagamento eu tenho vários Itens Comprados para uma requisição e ele enviar a lista normal no momento de Salvar a requisição de pagamento, porém quando eu tenho recuperar uma requisição de pagamento eu desejo que ele traga alem dos atributos da requisição traga a lista de items que foi passada no momento que foi realizada a requisição, porém a lista vem vazia.
Entendi, uma outra sugestão (que não deveria estar aconselhando…rsrs) nesse caso é alterar o FetchType no seu mapeamento para EAGER, ficando da seguinte forma:
@OneToMany(mappedBy="requisicaoPagamento", cascade=CascadeType.ALL, fetch = FetchType.EAGER)
public List<ItensComprados> listItensComprados;
Isso não é aconselhando em nível de performance, pois os dados são buscados a todo momento.
Usei a query exatamente como esta abaixo e não retorna nenhum item, na verdade até o objeto retorna null, pois antes retornava o objeto sem a lista, agora esta sem nada.
Quando eu crio este tipo de relacionamento ele deveria criar alguma tabela de relação no Banco?
Porque quando eu não utiliza o mappedBy ele criava uma tabela de relação entre os dois models, porém após este tipo de utilização ele não cria mais esta tabela.
Muito obrigado pela indicação do post, muito bom mesmo e tranquilo, pois estou tendo duvida devido não esta muito acostumando a utilizar o mappedBy.
O post mim esclareceu muito e percebi que com o código que utilizo acima ele faz isto que diz no post:
Não o mappedBy, mas a forma que esta a anotação faz este tipo relação, não criando uma tabela, mas sim criando uma coluna nos ItensComprados com o seguinte atributo RequisicaoPagamento_ID, porém olhando percebo que elas estão como null.
Será que poderia mim dar mais alguma ajuda, se é algum erro no salvar o registro.
Quando salvo uma requisição de pagamento com uma lista de items ele deveria relacionar esta coluna já com o ID da requisição de pagamento, correto?
jakefrog seu post mim ajudou muito a resolver meu problema e entender de fato o funcionamento.
O erro estava que eu não estava salvando o registro, fazendo esta inserção após salvar o billingRequest, resolveu o problema.
for (int i = 0; i < itemsPurchased.size(); i++) {
itemsPurchased.get(i).billingRequest = billingRequest;
itemsPurchased.get(i).billingRequest.save();
}