【发布时间】:2015-11-07 22:02:33
【问题描述】:
我正在创建一个 AuditableEntityManager,它将 json 消息放入路由到 ELK 集群的 JMS 队列中以进行审计。
大多数实现只是通过,所以例如我有
EntityManager entityManager_ = null;
public AuditableEntityManagerImpl(String name,
PersistenceProperty [] properties,
SynchronizationType synchronization,
PersistenceContextType type,
String unitName)
{
//TODO - Figure out how to configure the rest of the properties
entityManager_ = Persistence.createEntityManagerFactory(name).createEntityManager();
}
而且大多数方法看起来像
@Override
public <T> T find(Class<T> entityClass, Object primaryKey)
{
return entityManager_.find(entityClass, primaryKey);
}
除了具有待办事项块的可变方法外,我将在其中放置审计解析器
@Override
public void remove(Object entity)
{
entityManager_.remove(entity);
//TODO - LOG to audit
}
我允许 eclipse 从界面中填充缺失的方法,并且在 IDE 中所有方法都是绿色的。但是,当我尝试构建(使用 maven)时,我收到一堆错误,指出无法找到大部分 javax.peristence 内容,并且 EntityManager 中不存在许多方法。我已经刷新了我的 .m2/repository 以确保其中没有损坏,但没有运气。
错误堆栈如下,为长度道歉。任何想法将不胜感激。
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[6,25] cannot find symbol
symbol: class EntityGraph
location: package javax.persistence
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[16,25] cannot find symbol
symbol: class StoredProcedureQuery
location: package javax.persistence
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[17,25] cannot find symbol
symbol: class SynchronizationType
location: package javax.persistence
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[20,34] cannot find symbol
symbol: class CriteriaDelete
location: package javax.persistence.criteria
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[22,34] cannot find symbol
symbol: class CriteriaUpdate
location: package javax.persistence.criteria
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[31,37] cannot find symbol
symbol: class SynchronizationType
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[194,28] cannot find symbol
symbol: class CriteriaUpdate
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[200,28] cannot find symbol
symbol: class CriteriaDelete
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[242,10] cannot find symbol
symbol: class StoredProcedureQuery
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[248,10] cannot find symbol
symbol: class StoredProcedureQuery
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[254,10] cannot find symbol
symbol: class StoredProcedureQuery
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[260,10] cannot find symbol
symbol: class StoredProcedureQuery
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[326,14] cannot find symbol
symbol: class EntityGraph
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[332,10] cannot find symbol
symbol: class EntityGraph
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[338,10] cannot find symbol
symbol: class EntityGraph
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[344,19] cannot find symbol
symbol: class EntityGraph
location: class psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManager.java:[14,25] cannot find symbol
symbol: class SynchronizationType
location: package javax.persistence
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManager.java:[24,3] cannot find symbol
symbol: class SynchronizationType
location: @interface psu.edu.javaee.audit.producer.AuditableEntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManager.java:[24,49] cannot find symbol
symbol: variable SynchronizationType
location: @interface psu.edu.javaee.audit.producer.AuditableEntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[200,16] createQuery(CriteriaDelete) in psu.edu.javaee.audit.producer.AuditableEntityManagerImpl cannot implement <T>createQuery(javax.persistence.criteria.CriteriaQuery<T>) in javax.persistence.EntityManager
return type javax.persistence.Query is not compatible with javax.persistence.TypedQuery<T>
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[182,16] name clash: createQuery(java.lang.String) in psu.edu.javaee.audit.producer.AuditableEntityManagerImpl overrides a method whose erasure is the same as another method, yet neither overrides the other
first method: <T>createQuery(javax.persistence.criteria.CriteriaQuery<T>) in psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
second method: createQuery(CriteriaDelete) in psu.edu.javaee.audit.producer.AuditableEntityManagerImpl
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[241,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[244,26] cannot find symbol
symbol: method createNamedStoredProcedureQuery(java.lang.String)
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[247,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[250,26] cannot find symbol
symbol: method createStoredProcedureQuery(java.lang.String)
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[253,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[256,26] cannot find symbol
symbol: method createStoredProcedureQuery(java.lang.String,java.lang.Class[])
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[259,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[262,26] cannot find symbol
symbol: method createStoredProcedureQuery(java.lang.String,java.lang.String[])
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[271,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[274,26] cannot find symbol
symbol: method isJoinedToTransaction()
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[325,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[328,26] cannot find symbol
symbol: method createEntityGraph(java.lang.Class<T>)
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[331,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[334,26] cannot find symbol
symbol: method createEntityGraph(java.lang.String)
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[337,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[340,26] cannot find symbol
symbol: method getEntityGraph(java.lang.String)
location: variable entityManager_ of type javax.persistence.EntityManager
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[343,3] method does not override or implement a method from a supertype
[ERROR] /home/shawn/git/auditable-entity-manager/auditable-entity-manager-common/src/main/java/psu/edu/javaee/audit/producer/AuditableEntityManagerImpl.java:[346,26] cannot find symbol
symbol: method getEntityGraphs(java.lang.Class<T>)
location: variable entityManager_ of type javax.persistence.EntityManager
【问题讨论】:
-
Eclipse 使用 JPA 2.1 注释,而您的 maven 构建可能使用没有新类的 JPA 1.0 jars
-
你说得对,克里斯,谢谢。不幸的是,我的工具集也给了我不好的信息。
标签: jpa entitymanager java-ee-7