[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2692) Insert Into Select command doesn't allow named parameter as select output (insert input)

John Aylward (JIRA) noreply at atlassian.com
Thu Jun 28 00:40:52 EDT 2007


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_27327 ] 

John Aylward commented on HHH-2692:
-----------------------------------

stupid work around is to use a sub select like so:

INSERT INTO ProviderInvoiceLineItem (amount,billingAccount,circuit,description,invoice,type) SELECT pili.amount, pili.billingAccount, pili.circuit, pili.description, (SELECT pi FROM ProviderInvoice pi WHERE pi = :newInvoice), pili.type FROM com.cicat.bedrock.billing.model.ProviderInvoiceLineItem pili WHERE pili.invoice = :oldInvoice

but that seems like a big waste of joining tables unnecessarily 

> Insert Into Select command doesn't allow named parameter as select output (insert input)
> ----------------------------------------------------------------------------------------
>
>                 Key: HHH-2692
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2692
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: query-hql
>    Affects Versions: 3.2.4.sp1
>         Environment: Hibernate 3.2.4.sp1 with Annotations 3.3.0 And Validator 3.0.0
> MySQL 5.0.42
>            Reporter: John Aylward
>
> receive exception:
> org.hibernate.QueryException: number of select types did not match those for insert [INSERT INTO ProviderInvoiceLineItem (amount,billingAccount,circuit,description,invoice,type) SELECT pili.amount, pili.billingAccount, pili.circuit, pili.description, :newInvoice, pili.type FROM com.cicat.bedrock.billing.model.ProviderInvoiceLineItem pili WHERE pili.invoice = :oldInvoice]
> Idea is to copy all line items from one invoice to another. In other words, only difference between data should be the invoice. easiest way to do this is with "insert into" command and passing parameter of changed value.
>  * Trying to cast named parameter (:newInvoice) caused parsing error
>  * Trying to replace invoice with invoice_id and repacing :newInvoice with actual invoice id resulted in a "property 'invoice_id' not found" exception
> Should be able to set a value through a named parameter

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list