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?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Difference between Types.INTEGER and Types.NULL in
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 theEntityManager
pick up the changes.They will be managed if you are currently within a transaction, but if you are not (e.g. if you have annotated your trnasction with TransactionAttributeType.NOT_SUPPORTED or TransactionAttributeType.NEVER) your entities will not be managed.
From my experience the getResultList() return values are Attached. That is, you do not have to manually persist them if you make modifications to them within the same transaction.