How to avoid blocking EDT with JPA lazy loading in Swing desktop apps
问题 I'm struggling with real-world use of JPA (Hibernate, EclipseLink, etc) in a Swing desktop application. JPA seems like a great idea, but relies on lazy loading for efficiency. Lazy loading requires the entity manager exist for the lifetime of the entity beans, and offers no control over what thread is used for loading or any way to do the loading in the background while the EDT gets on with other things. Accessing a property that happens to be lazily loaded on the EDT will block your app's UI