Dúvida utilização com JPA/Hibernate

Estou com a seguinte situação:

Tenho um Obj1 e Obj2 sendo que exite o relacionamento entre Obj1 e Obj2, onde Obj1 possui uma lista de Obj2. No mesmo cenário preciso atender as seguinte situações:

  • Posso buscar Obj1 e quero trazer todas a lista e Obj2 que estiver relacionado.
  • Posso buscar Obj2 especifico e exibi-lo
  • Posso salvar obj2 somente
  • Posso salvar obj1 com uma lista de obj2
  • Posso salvar obj1 com uma lista de obj2 (sendo que neste caso os obj2 da lista ja existem no BD gravados)

Que tipo de solução posso usar nesta situação, pois já tentei varias usando JPA/Hibernate e não conseguir em nenhum caso. Sempe algumas das condições apresenta erro.

Exemplos já utilizados:
Classe Obj1:

@ManyToMany(fetch = FetchType.EAGER)
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)
protected List<Obj2> obj2;

Classe Obj2:

@ManyToMany(mappedBy = "obj2")
private List<Obj1> obj1;

Persistencia:

EntityManager em = JPAUtil.getEntityManager();
        em.getTransaction().begin();
        em.persist(obj1);
        em.getTransaction().commit();
        em.close();

Já utilizei tambem desta forma:
Classe Obj1:

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
protected List<Obj2> obj2;

Agradeço desde já a atenção.

Alguma ajuda?

Será que minha pergunta não foi bastante clara para o entendimento?

Vou ser mais breve.

Tenho dois objetos, Obj1 e Obj2, sendo que Obj1 possui uma lista de Obj2 e quero mapear para as seguintes situações:

  • Poder inserir Obj2 sem gerar Obj1 e depois iserir Obj1 com objetos do Obj2 já existente.
  • Ao buscar Obj1 trazer toda a hierarquia.

Qualquer indicação é bem vinda, pois já testei algumas possibilidades e estou tento problemas.

Obrigado.