Hi James, The invoice summaries in Estatio also contain queries.
Example: https://github.com/estatio/estatio/blob/master/dom/src/main/java/org/estatio/dom/invoice/viewmodel/InvoiceSummaryForInvoiceRun.java Accessed through the repository: https://github.com/estatio/estatio/blob/master/dom/src/main/java/org/estatio/dom/invoice/viewmodel/InvoiceSummariesForInvoiceRun.java Hope this helps. Jeroen On 17 Mar 2014 20:50, "james agada" <[email protected]> wrote: > any help? Cant seem to be able to track this down. > > > On Sun, Mar 16, 2014 at 7:52 PM, james agada <[email protected]> wrote: > > > Following the examples in Estatio, I have defined a query model like this > > > >> > >> @javax.jdo.annotations.PersistenceCapable( > >> > >> identityType = IdentityType.NONDURABLE, > >> > >> table = "DailySalesTotalForParty", > >> > >> extensions = { > >> > >> @Extension(vendorName = "datanucleus", key = > >> "view-definition-mysql", > >> > >> value = "CREATE VIEW {DailySalesTotalForParty} " + > >> > >> "( " + > >> > >> " {this.transactionDate}, " + > >> > >> " {this.totalAmount} ," + > >> > >> " {this.fromPartyReference}, " + > >> > >> " {this.transactiontype} " + > >> > >> ") AS " + > >> > >> "SELECT " + > >> > >> " {Transaction.transactionDate} , " + > >> > >> > >> " SUM({Transaction.faceValue}) AS totalAmount ," + > >> > >> // " \"Transaction\".\"fromParty_Party_ID_OID\" AS > >> \"fromParty\", " + > >> > >> " {Transaction.fromPartyReference} , " + > >> > >> > >> " {Transaction.transactiontype} " + > >> > >> " FROM " + > >> > >> " {Transaction} " + > >> > >> "GROUP BY " + > >> > >> " {Transaction.transactionDate}, " + > >> > >> " {Transaction.fromPartyReference}, " + > >> > >> " {Transaction.transactiontype} " > >> > >> + > >> > >> "ORDER BY " + > >> > >> " {Transaction.transactionDate}, " + > >> > >> " {Transaction.fromPartyReference}, " + > >> > >> " {Transaction.transactiontype}" > >> > >> ) > >> > >> }) > >> > >> @javax.jdo.annotations.Inheritance(strategy = > >> InheritanceStrategy.NEW_TABLE) > >> > >> @javax.jdo.annotations.Queries( { > >> > >> @javax.jdo.annotations.Query( > >> > >> name="DailySalesForParty", language="JDOQL", > >> > >> value="SELECT FROM dom.todo.DailySalesTotalForParty WHERE > >> fromPartyReference == :party ") > >> > >> }) > >> > >> @Bookmarkable > >> > >> @Immutable > >> > >> public class DailySalesTotalForParty { ........ > >> > > > > I try to get the records from the view using the Query definition in a > > service as > > > >> @Programmatic > >> > >> public List<DailySalesTotalForParty> getDailySalesTotalForParty(Party > p){ > >> > >> //get party id > >> > >> //get party > >> > >> //String party = p.getUniqueRef(); > >> > >> //party="2"; > >> > >> return allMatches( > >> > >> new QueryDefault<DailySalesTotalForParty>( > DailySalesTotalForParty.class, > >> > >> "DailySalesForParty", > >> > >> "party",p.getUniqueRef()); > >> > >> } > >> > > > > But I end up with this error during runtime > > > > [exec] 19:52:40,699 [Native qtp1993764967-32 DEBUG] > SELECT > >> 'dom.todo.DailySalesTotalForParty' AS > >> > NUCLEUS_TYPE,`A0`.`FROMPARTYREFERENCE`,`A0`.`TOTALAMOUNT`,`A0`.`TRANSACTIONDATE`,`A0`.`TRANSACTIONTYPE` > >> FROM `DAILYSALESTOTALFORPARTY` `A0` WHERE `A0`.`FROMPARTYREFERENCE` = > <'2'> > >> > >> [exec] 19:52:40,778 [RequestCycleExtra qtp1993764967-32 WARN ] > >> ******************************** > >> > >> [exec] 19:52:40,778 [RequestCycleExtra qtp1993764967-32 WARN ] > >> Handling the following exception > >> > >> [exec] org.apache.wicket.WicketRuntimeException: Error attaching > >> this container for rendering: [WebMarkupContainer [Component id = body]] > >> > >> [exec] at > >> > org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1693) > >> > >> [exec] > >> > > .......... > > > > [exec] Caused by: java.lang.RuntimeException: > > java.lang.IllegalArgumentException: identifier > > 'org.datanucleus.identity.SCOID_org.datanucleus.identity.SCOID@73946e71' > > contains an '@' symbol > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:273) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.withLogging(FrameworkSynchronizer.java:282) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.FrameworkSynchronizer.postLoadProcessingFor(FrameworkSynchronizer.java:69) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessorAbstract.loadAdapters(PersistenceQueryProcessorAbstract.java:82) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor.process(PersistenceQueryFindUsingApplibQueryProcessor.java:64) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor.process(PersistenceQueryFindUsingApplibQueryProcessor.java:43) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.processPersistenceQuery(DataNucleusObjectStore.java:542) > > > > [exec] at > > > org.apache.isis.objectstore.jdo.datanucleus.DataNucleusObjectStore.loadInstancesAndAdapt(DataNucleusObjectStore.java:537) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession$1.execute(PersistenceSession.java:461) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession$1.execute(PersistenceSession.java:458) > > > > [exec] at > > > org.apache.isis.core.runtime.system.transaction.IsisTransactionManager.executeWithinTransaction(IsisTransactionManager.java:217) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession.getInstancesFromPersistenceLayer(PersistenceSession.java:458) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession.getInstances(PersistenceSession.java:454) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession.findInstances(PersistenceSession.java:391) > > > > [exec] at > > > org.apache.isis.core.runtime.system.persistence.PersistenceSession.findInstances(PersistenceSession.java:386) > > > > [exec] at > > > org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession$8.allMatchingQuery(RuntimeContextFromSession.java:260) > > > > [exec] at > > > org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault.allMatches(DomainObjectContainerDefault.java:400) > > > > [exec] at > > > org.apache.isis.applib.AbstractContainedObject.allMatches(AbstractContainedObject.java:175) > > > > [exec] at > > dom.todo.Partytypes.getDailySalesTotalForParty(Partytypes.java:392) > > > > [exec] at dom.todo.Party.getDailySales(Party.java:283) > > > > What could be wrong? What does > > org.datanucleus.identity.SCOID_org.datanucleus.identity.SCOID@73946e71' > > contains an '@' symbol mean? Where do I start to look for the problem? > > > >> > > > > > > > > > > > > > > > > > > >
