为了完成整个事情,我将PersistenceContextBridge
在这里通过我的 Spring bean。它包装了一个EntityManager
,它将通过 注入@PersistenceContext
。通过使用 Lombok 注释@Delegate
,对 bean 的所有调用都将委托给EntityManager
.
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import lombok.Delegate;
import org.springframework.stereotype.Service;
@Service
public class EntityManagerBridge implements EntityManager {
@Delegate
@PersistenceContext
private EntityManager em;
}
现在我在 Wicket 组件中要做的就是EntityManagerBridge
注入@SpringBean
:
@SpringBean
private EntityManager em; // inject EntityManagerBridge (implements EntityManager)
public MyFancyResource() {
Injector.get().inject(this); // enable Spring injection for
}