I usually use the following approach:
1° I perform the first retrieve of the entity that contains the data;
2° I create an empty list of the second entity;
3° I create an iterator over the retrieved list
3.1 For each object in the itarator create a new object of the second entity;
3.2 add to list (empty list)
4° Outside the iterator I commit the new list created.
This way the two entities will be equally populated