sql - Named query with composite key (EJB) -


i have associative table composite key. trying run named query selects based on values (the composite key(s)).

this code looks like:

@entity @namedqueries({ @namedquery(name = "mw.findall", query = "select mw memberworkout mw"), @namedquery(name = "mw.find1", query = "select mw memberworkout mw mw.socialsecurity :socialsecurity"), }) @table(name = "memberworkout") public class memberworkout implements serializable {  private member member; private workout workout; private string date; private mwid mwid;  @embeddedid public mwid getid() {     return mwid; }  public void setid(mwid mwid) {     this.mwid = mwid; } .... @manytoone @joincolumn(name = "socialsecurity", insertable = false, updatable = false) public member getmember() {     return member; }  public void setmember(member member) {     this.member = member; } 

this first error when deploy , start server (jboss):

error [org.hibernate.internal.sessionfactoryimpl] (msc service thread 1-1) hhh000177:   error in named query: mw.find1: org.hibernate.queryexception: not resolve property: socialsecurity of: org.ics.ejb.memberworkout [select mw org.ics.ejb.memberworkout mw mw.socialsecurity :socialsecurity] @ org.hibernate.persister.entity.abstractpropertymapping.propertyexception(abstractpropertymapping.java:83) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.persister.entity.abstractpropertymapping.totype(abstractpropertymapping.java:77) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.persister.entity.abstractentitypersister.totype(abstractentitypersister.java:1809) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.fromelementtype.getpropertytype(fromelementtype.java:313) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.fromelement.getpropertytype(fromelement.java:485) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.dotnode.getdatatype(dotnode.java:598) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.dotnode.preparelhs(dotnode.java:266) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.dotnode.resolve(dotnode.java:213) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.fromreferencenode.resolve(fromreferencenode.java:118) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.tree.fromreferencenode.resolve(fromreferencenode.java:114) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.hqlsqlwalker.resolve(hqlsqlwalker.java:883) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.expr(hqlsqlbasewalker.java:1246) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.exprorsubquery(hqlsqlbasewalker.java:4252) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.comparisonexpr(hqlsqlbasewalker.java:3874) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.logicalexpr(hqlsqlbasewalker.java:1923) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.whereclause(hqlsqlbasewalker.java:782) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.query(hqlsqlbasewalker.java:583) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.selectstatement(hqlsqlbasewalker.java:287) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.antlr.hqlsqlbasewalker.statement(hqlsqlbasewalker.java:235) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.querytranslatorimpl.analyze(querytranslatorimpl.java:248) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.querytranslatorimpl.docompile(querytranslatorimpl.java:183) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.hql.internal.ast.querytranslatorimpl.compile(querytranslatorimpl.java:136) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:101) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.engine.query.spi.hqlqueryplan.<init>(hqlqueryplan.java:80) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.engine.query.spi.queryplancache.gethqlqueryplan(queryplancache.java:119) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.internal.sessionfactoryimpl.checknamedqueries(sessionfactoryimpl.java:974) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.internal.sessionfactoryimpl.<init>(sessionfactoryimpl.java:485) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1737) [hibernate-core-4.0.1.final.jar:4.0.1.final] @ org.hibernate.ejb.entitymanagerfactoryimpl.<init>(entitymanagerfactoryimpl.java:84) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final] @ org.hibernate.ejb.ejb3configuration.buildentitymanagerfactory(ejb3configuration.java:904) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final] @ org.hibernate.ejb.ejb3configuration.buildentitymanagerfactory(ejb3configuration.java:889) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final] @ org.hibernate.ejb.hibernatepersistence.createcontainerentitymanagerfactory(hibernatepersistence.java:73) [hibernate-entitymanager-4.0.1.final.jar:4.0.1.final] @ org.jboss.as.jpa.service.persistenceunitserviceimpl.createcontainerentitymanagerfactory(persistenceunitserviceimpl.java:162) [jboss-as-jpa-7.1.1.final.jar:7.1.1.final] @ org.jboss.as.jpa.service.persistenceunitserviceimpl.start(persistenceunitserviceimpl.java:85) [jboss-as-jpa-7.1.1.final.jar:7.1.1.final] @ org.jboss.msc.service.servicecontrollerimpl$starttask.startservice(servicecontrollerimpl.java:1811) @ org.jboss.msc.service.servicecontrollerimpl$starttask.run(servicecontrollerimpl.java:1746) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) [rt.jar:1.7.0_11] @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) [rt.jar:1.7.0_11] @ java.lang.thread.run(unknown source) [rt.jar:1.7.0_11] 

if understand issue correctly, socialsecurity field of mwid embeddable. if want access query, need navigate through embedded id this:

select mw memberworkout mw mw.id.socialsecurity... 

i assuming property name capitalized, in code. if not, replace proper name.

please note using property access, meaning because accessor method annotated, need name property in query according javabean standard (getid() means hql , jpql access preperty id). if annotate field, need change query mwid.


Comments

Popular posts from this blog

get url and add instance to a model with prefilled foreign key :django admin -

css - Make div keyboard-scrollable in jQuery Mobile? -

ruby on rails - Seeing duplicate requests handled with Unicorn -