I guess you are just firing select statements from your method2().
Remove the transaction attaribute.
I think it will be better approach to use only one method and pass the list to it.
just suggestions, dont know your complete scenario.
Who I am
you know me....
Throwing of NoEntiyFound exception is an expected behaviour.
Then catch it.