Hi Shaomin, You'll have to use SqlFieldsQuery to select specific objects/fields. _key and _val fields represent key and value objects.
Also, use fully-qualified table name or an alias before field names. The following SqlFieldsQuery will return Order and Trade objects in a list: "select o._val, t._val from \"Order\".Order o, \"Trade\".Trade t where Order.orderId = t.orderId and Order.traderId = t.traderId and Order.traderId = ? and Order.orderId = ?" Thanks, On Mon, Feb 15, 2016 at 1:45 PM, Shaomin Zhang <[email protected]> wrote: > Hi > > I have a couple of questions about SQL join queries: I can only use > "select *", I get exceptions if I specify tables/alias rather than *, and > this "select *" returns the value objects from the first table (or cache) > of the join, nothing else. For example, if my query string is > > String joinSql = "select _val, * from \"Order\".Order, > \"Trade\".Trade t where Order.orderId = t.orderId and Order.traderId = > t.traderId and Order.traderId = ? and Order.orderId = ?"; > > I get the exception as below: > > Exception in thread "main" javax.cache.CacheException: class > org.apache.ignite.IgniteException: Only queries starting with 'SELECT *' > are supported or use SqlFieldsQuery instead: select _val, * from > "Order".Order, "Trade".Trade t where Order.orderId = t.orderId and > Order.traderId = t.traderId > > > So my question is: is there a way to specify which objects should be > returned from the joined caches? > > > Thank you > > Shaomin > > > _________________________________________________________ > > This email, its contents, and any attachments transmitted with it are > intended only for the addressee(s) and may be confidential and legally > privileged. We do not waive any confidentiality by misdelivery. If you have > received this email in error, please notify the sender immediately and > delete it. You should not copy it, forward it or otherwise use the > contents, attachments or information in any way. Any liability for viruses > is excluded to the fullest extent permitted by law. > > Tudor Capital Europe LLP (TCE) is authorised and regulated by The > Financial Conduct Authority (the FCA). TCE is registered as a limited > liability partnership in England and Wales No: OC340673 with its registered > office at 10 New Burlington Street, London, W1S 3BE, United Kingdom > -- -- Pavel Tupitsyn GridGain Systems, Inc. www.gridgain.com
