我在QuartzJobs实例上使用EntityManager遇到此问题:
Java语言weblogic上的lang.NullPointerException。坚持不懈CICScopedImprovider。weblogic上的getEMForCurrentCIC(CICScopedImprovider.java:35)。坚持不懈事务实体管理器Proxy Impl。weblogic上的getPersistenceContext(TransactionalEntityManagerProxyImpl.java:122)。坚持不懈BasePersistenceContextProxyImpl。在weblogic上调用(BasePersistenceContextProxyImpl.java:94)。坚持不懈事务实体管理器Proxy Impl。在weblogic上调用(TransactionalEntityManagerProxyImpl.java:164)。坚持不懈BasePersistenceContextProxyImpl。在com上调用(BasePersistenceContextProxyImpl.java:86)。太阳代理$Proxy321.createQuery(未知源)位于com。我的项目。存储库。实施。光沉积impl。com上的getShotsFromBackupOption(photopositoryimpl.java:44)。我的项目。服务实施。PhotoServiceImpl。com上的getPhoto(PhotoServiceImpl.java:90)。我的项目。班长备份作业。在组织中执行(BackupJob.java:46)。石英果心JobRunShell。在org上运行(JobRunShell.java:202)。石英简单。SimpleThreadPool$WorkerThread。运行(SimpleThreadPool.java:573)
这是我的工作:
public class BackupJob implements Job{
private Logger logger = LoggerFactory.getLogger(getClass());
@Inject private PhotoService photoService;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
try {
String jobName = context.getJobDetail().getKey().getName();
Long jobGroup = Long.parseLong(context.getJobDetail().getKey().getGroup());
List<File> fileList = photoService.getPhoto(jobName, jobGroup);
logger.info("Backup with deep {}", context.getJobDetail().getJobDataMap().get("deep"));
} catch (Exception e) {
logger.error("ERROR during backup job", e);
}
}
}
(正确注入了photoService,这与我在photoService中调用的photoRepository方法相同)
这是我的存储库:
@Stateless
public class PhotoRepositoryImpl implements PhotoRepository{
@PersistenceContext(unitName=Constant.PU_NAME)
private EntityManager em;
@Override
public List<Photo> getShotsFromBackupOption(String jobName, Long jobGroup) throws SQLException{
Query query = em.createQuery("SELECT p "
+ "FROM Shot s "
+ "JOIN Photo p "
+ "WHERE s.dateShooting < "
+ "(SELECT b.previousThan "
+ "FROM BackupOption b "
+ "WHERE b.jobName = :jobName AND b.syncType.id = :jobGroup)"
+ "ORDER BY p.relativePath DESC");
query.setParameter("jobName", jobName);
query.setParameter("jobGroup", jobGroup);
return (List<Photo>) query.getResultList();
}
}
这是我的工作工厂
public class JobFactoryImpl implements JobFactory {
@Inject
private Instance<Job> jobs;
@Override
public Job newJob(TriggerFiredBundle triggerFiredBundle, Scheduler scheduler) throws SchedulerException {
final JobDetail jobDetail = triggerFiredBundle.getJobDetail();
final Class<? extends Job> jobClass = jobDetail.getJobClass();
for (Job job : jobs) {
if (job.getClass().isAssignableFrom(jobClass)) {
return job;
}
}
throw new RuntimeException("Cannot create a Job of type " + jobClass);
}}
我以这种方式解决了获取EntityManager:
@PersistenceUnit(unitName= Constant.PU_NAME)
private EntityManagerFactory emf;
private EntityManager em = emf.createEntityManager();
问题内容: 在我的Web应用程序中,我在Apache Tomcat(TomEE)/7.0.37服务器上使用OpenJPA。我使用Netbeans自动生成类(“来自数据库的实体类…”和“来自实体类的会话Bean …”)。在SessionBean(例如UserFacade)上,我想获取EntityManager: 但是当我通过上述方式得到它时,我得到的是空值。当我通过: ecm不为空,还可以 我的pe
我在netbeans中有一个Java web服务模块和ejb模块(都是企业应用程序的一部分)。web服务使用@ejb注入使用ejb类。在ejb模块中,我有一个TransactionManager类,它不是企业bean。只是一堂POJO课。我正在尝试使用以下方法注入EntityManager TransactionManager类是我希望为PersistenceContext进行依赖注入的类
Hibernate EntityManager实现了EJB3.0 JPA规范。Hibernate Java Persistence provider通过了Sun TCK测试和完全认证,你可以在Java SE 5.0,或Java EE 5.0以上的任何环境里使用Hibernate Java Persistence provider。 Hibernate是一个非常优秀的持久层ORM(Object/Re
我得到以下异常: 关于这个案子有什么建议吗?