isis-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dan Haywood <...@haywood-associates.co.uk>
Subject Re: what could be causing this kind of error
Date Mon, 24 Feb 2014 22:44:42 GMT
On 24 February 2014 21:38, james agada <okwuiagada@gmail.com> wrote:

> You are right. It comes from this definition - not sure what is wrong with
> it
>
> I can see several issues, some trivial, some probably the cause...

If, once you've addressed these, there are still issues, then I suggest you
strip the class back to a single field, get that working, and then build it
up bit by bit...

Dan



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> * /* *  Licensed to the Apache Software Foundation (ASF) under one *  or
> more contributor license agreements.  See the NOTICE file *  distributed
> with this work for additional information *  regarding copyright ownership.
>  The ASF licenses this file *  to you under the Apache License, Version 2.0
> (the *  "License"); you may not use this file except in compliance *  with
> the License.  You may obtain a copy of the License at * *
>  http://www.apache.org/licenses/LICENSE-2.0
> <http://www.apache.org/licenses/LICENSE-2.0> * *  Unless required by
> applicable law or agreed to in writing, *  software distributed under the
> License is distributed on an *  "AS IS" BASIS, WITHOUT WARRANTIES OR
> CONDITIONS OF ANY *  KIND, either express or implied.  See the License for
> the *  specific language governing permissions and limitations *  under the
> License. */*
>
(trivial) you probably will want to change the license...



>
> * package dom.todo;*
>
(trivial) ... and the package



> [snip]
>


> /**
> * View model that provides a summary of the sales made on a given day by
> each party
> */
> @javax.jdo.annotations.PersistenceCapable(
>     identityType = IdentityType.NONDURABLE,
>     table = "DailySalesTotalForParty",
>     extensions = {
>         @Extension(vendorName = "datanucleus", key = "view-definition",
>             value = "CREATE VIEW \"DailySalesTotalForParty\" " +
>                     "( " +
>                     "  {this.transactionDate}, " +
>
> *                     "  {this.fromPartyId}, " +*

I don't think JDO is clever enough to convert this id into a reference to a
Party (how would it know?)  So you should do what we did
in InvoiceSummaryForPropertyDueDate in Estatio (which is what I think you
based this on) and make FromParty a derived field that does the lookup from
a (new) fromPartyId field.




>
> *                     "  {this.transactiontype}, " +*

there is no 'transactiontype' field on your class ...



>                      "  {this.totalAmount} " +
>                     ") AS " +
>                     "SELECT " +
>
> *                     "   \"Tranaction\".\"transactiondate\" , " +*


the typo on this line "Tranaction".

Also, I suggest keeping capitalization consistent, ie transactionDate, not
transactiondate.



>                      "   \"Transaction.\".\"fromParty\", " +
>                     "   \"Transaction.\".\"transactiontype\", "
> +
>                     "   SUM(\"Transaction\".\"facevalue\") AS
> \"totalAmount\", " +
>                     "  FROM \"Transaction\" " +
>                     "GROUP BY " +
>                     " \"Transaction\".\"fromParty\", " +
>                     " \"Transaction\".\"transactiondate\" , " +
>                     " \"Transaction\".\"transactiontype\""  +
>                     "ORDER BY " +                     "
> \"Transaction\".\"fromParty\", " +
>                     " \"Transaction\".\"transactiondate\" , " +
>                     " \"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 fromParty == :party ")
>                         })
> @Bookmarkable
> @Immutable
> public class DailySalesTotalForParty  {
>
>         // //////////////////////////////////////
>
>
>     @javax.jdo.annotations.Column(allowsNull = "false")
>     private Party fromParty;
>
>
>
>
>
>
> *     /**      * Lazily loaded from the {@link #getReference() reference},
> provides access      * to the underlying {@link Property}.      */*


This comment is from the Estatio code (but does describe what you should do
to resolve "FromParty").


>      @Optional
>     @Title(sequence = "1")
>     public Party getFromParty() {
>         return fromParty;
>     }
>
>     public void setFromParty(final Party party) {
>         this.fromParty = party;
>     }
>
>     // //////////////////////////////////////
>
>     private LocalDate transactionDate;
>
>     @Title(sequence = "2", prepend = " - ")
>     public LocalDate getTransactionDate() {
>         return transactionDate;
>     }
>
>     public void setTransactionDate(final LocalDate dueDate) {
>         this.transactionDate = dueDate;
>     }
>
>     // //////////////////////////////////////
>
>     private BigDecimal totalAmount;
>
>     public BigDecimal getTotalAmount() {
>         return totalAmount;
>     }
>
>     public void setTotalAmount(final BigDecimal total) {
>         this.totalAmount = total;
>     }
>
>
>     // //////////////////////////////////////
>
>    /** @Render(Type.EAGERLY)
>     public List<Transaction> getTransactions() {
>         return transactions.findTransactionForPartyOnDate(getFromParty(),
> getTransactionDate());
>     }
> **/
>     // //////////////////////////////////////
>
>     private Partytypes partytypes;
>
>     final public void injectPartytypes(final Partytypes partytypes) {
>         this.partytypes = partytypes;
>     }
>
>     private Transactions transactions;
>
>     final public void injectTransactions(final Transactions transactions) {
>         this.transactions = transactions;
>     }
>
> }
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message