That was not exactly what I meant: Take the following example:
We have a User class and a Book class, and each User have a list of books which the user own defined as
(And in this example, there is only 1 object in the User table, just to make the explanation more easy).
Now imagine the following where A and B are 2 different entity managers. (Which in our implementation will be 2 Different threads, serving 2 different http request)
B: Fetch user. (User user=em1.find(User.class,1)).
A: Fetch user (User user=em2.find(User.class,1));
B: Create and save a new Book, and add it as a book to the user.
B: Save user.
A: Get list of users books.
Now the question: Does the list of books fetched by A include the new book added by B?. And does this change if FetchType.LAZY changes to FetchType.EAGER?
In a SQL database, A and B would run in their own transaction, and the answer would thus depend on the the selected isolation level for the transaction in A.