2016-04-08 142 views
0

我有这个运行时异常问题(使用一个关系数据库和Java容器基于对象 - 关系持久性解决方案。)态类型在javax.persistence(A态类型必须指定)

Exception [EclipseLink-7212] (Eclipse Persistence Services - 2.4.2.v20130514-5956486): org.eclipse.persistence.exceptions.ValidationException 
Exception Description: The attribute [submissionTime] from the entity class [class com.tdk.domain.Service] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar. 

但是,看在上帝的份上,这个类型已经是java.util.Date !!!!

@Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "SUBMISSION_TIME") 
    public Date getSubmissionTime() { 
     return this.submissionTime; 
    } 

这里完整堆栈跟踪

Exception Description: The attribute [submissionTime] from the entity class [class com.tdk.domain.Service] does not specify a temporal type. A temporal type must be specified for persistent fields or properties of type java.util.Date and java.util.Calendar. 
     at org.eclipse.persistence.exceptions.ValidationException.noTemporalTypeSpecified(ValidationException.java:1443) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processTemporal(MappingAccessor.java:1829) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processJPAConverters(MappingAccessor.java:1584) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processMappingConverter(MappingAccessor.java:1652) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.MappingAccessor.processMappingValueConverter(MappingAccessor.java:1670) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.BasicAccessor.process(BasicAccessor.java:414) 
     at org.eclipse.persistence.internal.jpa.metadata.MetadataDescriptor.processMappingAccessors(MetadataDescriptor.java:1461) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.ClassAccessor.processMappingAccessors(ClassAccessor.java:1526) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.processMappingAccessors(EntityAccessor.java:1085) 
     at org.eclipse.persistence.internal.jpa.metadata.accessors.classes.EntityAccessor.process(EntityAccessor.java:645) 
     at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage2(MetadataProject.java:1718) 
     at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:536) 
     at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:550) 
     at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1484) 
     at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:235) 
     at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:452) 
     at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:445) 
     at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnitInfo.java:119) 
     at weblogic.persistence.BaseJPAIntegrationProvider.createPersistenceUnitInfo(BaseJPAIntegrationProvider.java:53) 
     at weblogic.persistence.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:420) 
     at weblogic.persistence.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:127) 
     at weblogic.persistence.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:61) 
     at weblogic.servlet.internal.WebAppInternalModuleExtension$PersistenceExtension.setupPersistenceUnitRegistry(WebAppInternalModuleExtension.java:267) 
     at weblogic.servlet.internal.WebAppInternalModuleExtension$PersistenceExtension.access$400(WebAppInternalModuleExtension.java:188) 
     at weblogic.servlet.internal.WebAppInternalModuleExtension.prePrepare(WebAppInternalModuleExtension.java:58) 
     at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:293) 
     at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:285) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) 
     at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:109) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100) 
     at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:172) 
     at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:167) 
     at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80) 
     at weblogic.work.ContextWrap.run(ContextWrap.java:40) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:550) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:295) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:254) 
+1

这是一个“编译问题”?这是AT RUNTIME的例外。 –

+1

正在拾取列和时间标注吗?将日志记录转换为最好或全部,并检查EclipseLink在其部署阶段采集的内容。如果您在字段和属性上有注释,则只有一组将被拾取。还要检查你的带有注释的类的版本是否是在运行时拾取的类 - 它不会是多个版本的类首次引起奇怪的运行时问题。 – Chris

+0

您是否正在导入java.sql.Date? –

回答

0

@克里斯的评论是正确的(被拾起列和时间的注解?打开记录到最好的还是全部,并检查EclipseLink在部署阶段正在拾取的内容,如果你在字段和属性上有注释,那么只有一个集合会被拾取,还要检查你带有注释的类的版本是在运行时 - 它不会是第一次e多个版本的类导致奇怪的运行时问题)

0

我认为你应该删除长度= 11

相关问题