JBoss Community

Re: HHH015011: Unable to locate static metamodel field

created by Mariano Kocalka Machala in JBoss AS 7 Development - View the full discussion

Hi, Scott

These are the issues we are facing with criteria/metamodel APIs and Jboss-as-7.1.0

 

As you can see from the attached example (zip file), we are extending an @Entity (TaxAgent) from a @MappedSuperclass (Agent)

Agent has an @Embedded attribute (document), and this generates two errors:

 

1. When deploying there "Unable to locate static metamodel field" errors. Note that this errors act at two levels, first the document field cannot be found in TaxAgent_ but also, the documentType field cannot be found inside our embeddable, Document_.

 

2. When trying to create a path expression from the root object (taxAgent) to TaxAgent_.document an exception is thrown (which is below).

 

3. Also, we've found this:

https://hibernate.onjira.com/browse/HHH-5024 (which is similar but a different hierarchy @Embeddable extending a @MappedSuperclass)

 

4. At "deploy" time the logger error message as below:

17:15:01,452 ERROR [MetadataContext] Unable to locate static metamodel field : agents.TaxAgent_#document

17:15:01,457 ERROR [MetadataContext] Unable to locate static metamodel field : stuff.Document_#documentType

 

5. At query time:

public final List<TaxAgent> getList(final String description)

{

    List<TaxAgent> taxAgentList = null;

    try

    {

        final CriteriaBuilder cb = em.getCriteriaBuilder();

        final CriteriaQuery<TaxAgent> cq = cb.createQuery(TaxAgent.class);

        final Root<TaxAgent> taxAgent = cq.from(TaxAgent.class);

 

        // <- This is the exception line: at service.manager.ejb.TaxAgentManagerEJB.getList(TaxAgentManagerEJB.java:61) [:]

        final Path<Document> document = taxAgent.get(TaxAgent_.document);

 

        //    final Path<Document> document = taxAgent.get("document"); // <- This works (just in case you were asking)

        final Path<String> documentNumber = document.get(Document_.documentNumber);

        final StringBuilder sb = new StringBuilder();

 

        sb.append("%").append(description.trim().replaceAll(" ", "%")).append("%");

        cq.where(cb.like(cb.upper(cb.trim(documentNumber)), sb.toString().toUpperCase()));

 

        // Gets data.

        final TypedQuery<T> tq = em.createQuery(cq);

        taxAgentList = tq.getResultList();

    }

    catch (Throwable t)

    {

        throw new EJBException(t.getMessage());

    }

    return taxAgentList;

}

 

6. Query execution:

2011-11-11 11:24:49,330 ERROR [com.ebizlink.pandora2.web.component.BaseComponent] (http-127.0.0.1-8080-1) null: javax.ejb.EJBException

    at service.manager.ejb.TaxAgentManagerEJB.getList(TaxAgentManagerEJB.java:61) [:]

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20]

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20]

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20]

    at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.interceptors.container.ContainerMethodInvocationWrapper.invokeNext(ContainerMethodInvocationWrapper.java:72) [:1.1.3]

    at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:76) [:1.1.3]

    at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:62) [:1.1.3]

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20]

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20]

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20]

    at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20]

    at org.jboss.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:74) [:1.1.3]

    at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_11985797.invoke(InvocationContextInterceptor_z_fillMethod_11985797.java)

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:90) [:1.1.3]

    at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_11985797.invoke(InvocationContextInterceptor_z_setup_11985797.java)

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.async.impl.interceptor.AsynchronousServerInterceptor.invoke(AsynchronousServerInterceptor.java:128) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) [:1.0.3]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.core.context.SessionInvocationContextAdapter.proceed(SessionInvocationContextAdapter.java:95) [:1.7.17]

    at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:247) [:0.0.1]

    at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.required(CMTTxInterceptor.java:349) [:0.0.1]

    at org.jboss.ejb3.tx2.impl.CMTTxInterceptor.invoke(CMTTxInterceptor.java:209) [:0.0.1]

    at org.jboss.ejb3.tx2.aop.CMTTxInterceptorWrapper.invoke(CMTTxInterceptorWrapper.java:52) [:0.0.1]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76) [:1.0.0.GA]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42) [:1.0.3]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:182) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:67) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.core.context.CurrentInvocationContextInterceptor.invoke(CurrentInvocationContextInterceptor.java:47) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67) [:1.0.1]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.interceptor.EJB3TCCLInterceptor.invoke(EJB3TCCLInterceptor.java:86) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:323) [:1.7.17]

    at org.jboss.ejb3.session.SessionSpecContainer.invoke(SessionSpecContainer.java:380) [:1.7.17]

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20]

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20]

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20]

    at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20]

    at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalContainerInvocation.invokeTarget(SessionLocalProxyInvocationHandler.java:184) [:1.0.11]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143) [:1.7.17]

    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) [jboss-aop.jar:2.2.1.GA]

    at org.jboss.ejb3.proxy.impl.handler.session.SessionLocalProxyInvocationHandler$LocalInvokableContextHandler.invoke(SessionLocalProxyInvocationHandler.java:159) [:1.0.11]

    at $Proxy288.invoke(Unknown Source)    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185) [:1.0.11]

    at $Proxy274.getList(Unknown Source)    at com.ebizlink.pandora2.web.component.form.BaseAutoCompleteComponent.getList(BaseAutoCompleteComponent.java:73) [:]

    at com.ebizlink.pandora2.web.component.form.BaseAutoCompleteComponent.complete(BaseAutoCompleteComponent.java:59) [:]

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_20]

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [:1.6.0_20]

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [:1.6.0_20]

    at java.lang.reflect.Method.invoke(Method.java:616) [:1.6.0_20]

    at org.apache.el.parser.AstValue.invoke(AstValue.java:196) [:6.0.0.Final]

    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) [:6.0.0.Final]

    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102) [:2.0.3-]

    at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeResults(AutoCompleteRenderer.java:78) [:]

    at org.primefaces.component.autocomplete.AutoCompleteRenderer.encodeEnd(AutoCompleteRenderer.java:60) [:]

    at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:879) [:2.0.3-]

    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1650) [:2.0.3-]

    at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:479) [:2.0.3-]

    at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:175) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1476) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIForm.visitTree(UIForm.java:331) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at javax.faces.component.UIComponent.visitTree(UIComponent.java:1487) [:2.0.3-]

    at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:361) [:2.0.3-]

    at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:282) [:2.0.3-]

    at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:179) [:2.0.3-]

    at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:968) [:2.0.3-]

    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643) [:2.0.3-]

    at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:378) [:2.0.3-]

    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127) [:2.0.3-]

    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117) [:2.0.3-]

    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97) [:2.0.3-]

    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135) [:2.0.3-]

    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309) [:2.0.3-]

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.Final]

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]

    at com.ebizlink.adonis.common.ui.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:31) [:]

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]

    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:79) [:]

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.0.0.Final]

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.0.0.Final]

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) [:6.0.0.Final]

    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.0.0.Final]

    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:593) [:6.0.0.Final]

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]

    at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]

    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.0.0.Final]

    at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.0.0.Final]

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) [:6.0.0.Final]

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.0.0.Final]

    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.0.0.Final]

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.0.0.Final]

    at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.0.0.Final]

    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.0.0.Final]

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.0.0.Final]

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.0.0.Final]

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.0.0.Final]

    at java.lang.Thread.run(Thread.java:636) [:1.6.0_20]

 

2011-11-11 11:24:49,369 SEVERE [javax.enterprise.resource.webcontainer.jsf.context] (http-127.0.0.1-8080-1) java.lang.NullPointerException

 

===============================================================================

sample code

===============================================================================

package agents;

 

import java.io.Serializable;

import javax.persistence.Embedded;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.MappedSuperclass;

import javax.persistence.SequenceGenerator;

import stuff.Document;

 

@MappedSuperclass

@SuppressWarnings("serial")

public abstract class Agent implements Serializable

{

    @Id

    @SequenceGenerator(name = "id", sequenceName = "agent_seq")

    @GeneratedValue(strategy = GenerationType.AUTO, generator = "id")

    private Long agentID;

 

    @Embedded

    private Document document;

 

    /**

     */

    protected Agent(Document document)

    {

        this.agentID = 0l;

        this.document = document;

    }

 

    // getters, setters...

}

 

===============================================================================

sample code

===============================================================================

package agents;

 

import javax.persistence.Entity;

import javax.persistence.Table;

import javax.persistence.UniqueConstraint;

import stuff.Document;

 

@Entity

@Table(name = "taxagent", uniqueConstraints = @UniqueConstraint(columnNames = {"documentTypeID", "documentNumber"}))

@SuppressWarnings("serial")

public final class TaxAgent extends Agent

{

    /**

     */

    protected TaxAgent(Document document)

    {

        super(document);

    }

 

    /**

     */

    public TaxAgent()

    {

        this(null);

    }

}

 

===============================================================================

sample code

===============================================================================

package stuff;

 

import java.io.Serializable;

import javax.persistence.Column;

import javax.persistence.Embeddable;

import javax.persistence.FetchType;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

 

@Embeddable

@SuppressWarnings("serial")

public final class Document implements Serializable

{

    @ManyToOne(fetch = FetchType.EAGER)

    @JoinColumn(name = "documentTypeID")

    private DocumentType documentType;

 

    @Column(length = 20)

    private String documentNumber;

 

    /**

     */

    public Document(DocumentType documentType, String documentNumber)

    {

        this.documentType = documentType;

        this.documentNumber = documentNumber;

    }

 

    /**

     */

    public Document()

    {

        this(null, "");

    }

 

    // getters, setters...

}

 

===============================================================================

sample code

===============================================================================

package stuff;

 

import javax.persistence.Cacheable;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.SequenceGenerator;

import javax.persistence.Table;

 

@Entity

@Table(name = "documenttype")

@Cacheable(value = true)

@SuppressWarnings("serial")

public final class DocumentType implements Serializable

{

    @Id

    @SequenceGenerator(name = "id", sequenceName = "documenttype_seq")

    @GeneratedValue(strategy = GenerationType.AUTO, generator = "id")

    private Long documentTypeID;

 

    @Column(length = 50, unique = true)

    private String description;

 

    /**

     */

    public DocumentType(String description)

    {

        this.documentTypeID = 0l;

        this.description = description;

    }

 

    /**

     */

    public DocumentType()

    {

        this("");

    }

 

    // getters, setters...

}

 

===============================================================================

sample code

===============================================================================

package agents;

 

import stuff.Document;

import javax.persistence.metamodel.SingularAttribute;

import javax.persistence.metamodel.StaticMetamodel;

 

@StaticMetamodel(Agent.class)

public abstract class Agent_ {

 

    public static volatile SingularAttribute<Agent, Document> document;

    public static volatile SingularAttribute<Agent, Long> agentID;

 

}

 

===============================================================================

sample code

===============================================================================

package agents;

 

import javax.persistence.metamodel.ListAttribute;

import javax.persistence.metamodel.SingularAttribute;

import javax.persistence.metamodel.StaticMetamodel;

 

@StaticMetamodel(TaxAgent.class)

public abstract class TaxAgent_ extends agents.Agent_ {

 

}

 

===============================================================================

sample code

===============================================================================

package stuff;

 

import javax.persistence.metamodel.SingularAttribute;

import javax.persistence.metamodel.StaticMetamodel;

 

@StaticMetamodel(Document.class)

public abstract class Document_ {

 

    public static volatile SingularAttribute<Document, DocumentType> documentType;

    public static volatile SingularAttribute<Document, String> documentNumber;

 

}

 

===============================================================================

sample code

===============================================================================

package stuff;

 

import javax.persistence.metamodel.SingularAttribute;

import javax.persistence.metamodel.StaticMetamodel;

 

@StaticMetamodel(DocumentType.class)

public abstract class DocumentType_ {

 

    public static volatile SingularAttribute<DocumentType, String> description;

    public static volatile SingularAttribute<DocumentType, Long> documentTypeID;

 

}

Reply to this message by going to Community

Start a new discussion in JBoss AS 7 Development at Community