When I have a JPA Query that I call .getResultList(), It gives me back a List of objects. Are the objects in that list managed or detached? That is, do I have to worry about merging or persisting them later if I make changes to them, or will those changes be picked up automatically?
getResultList executes the JPQL SELECT statement and returns the results as a List ; if no results are found then it returns an empty list.
The getResultList() executes the query, just as the docs say. Of course, if this is a TypedQuery , you should add the generics part. It is good practice to return an unmodifiable, empty list from queries without result records.
JPA getSingleResult() or null.
NoResultExceptionJPA exceptionThrown by the persistence provider when Query. getSingleResult() or TypedQuery. getSingleResult()is executed on a query and there is no result to return.
Yes, the objects returned from .getResultList()
are managed.
When you made changes on the managed objects, you do not worry about merging as those changes will be picked up by the EntityManager
automatically.
The managed objects will become detached when the EntityManager
that is used to load that object is close(), clear() or detach(). Detached objects are not manged anymore and you should do merging to let the EntityManager
pick up the changes.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With