Gunnar.
Thanks for the reply.
Sorry man but I didn't show you that the "*select ... *" code snip is in
the create view code in SQL. Not in the application code.
I figured out what your perspective by re-writing my access, from the nice
simple model construction, to now using a call to hbmSession.CreateQuery().
*Can you answer this question?*
This doesn't work:
var qry = ses.CreateQuery("select CustServSetRecid from vCustServSet order
by CustServSetRecid")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(vCustServSet)))
.List<vCustServSet>();
error stating *can't find getter for propert '0'* (property 0?)
But this does:
var qry = ses.CreateQuery("select CustServSetRecid *as CustServSetRecid*
from vCustServSet order by CustServSetRecid")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(vCustServSet)))
.List<vCustServSet>();
And yes this does not work, nHibernate doesn't parse out the semi-quotes in:
var qry = ses.CreateQuery("select CustServSetRecid as *'CustServSetRecid'*
from vCustServSet order by CustServSetRecid")
.SetResultTransformer(NHibernate.Transform.Transformers.AliasToBean(typeof(vCustServSet)))
.List<vCustServSet>();
But it doesn't make sense that all columns in a CreateQuery() will need an
alias.
Everyone here is scratching their heads. Such requirements just don;t seem
to make sense.
On Tuesday, March 22, 2016 at 11:20:56 AM UTC-4, Gunnar Liljas wrote:
>
> I meant in the SQL...
>
> select CAST(ROW_NUMBER() OVER(ORDER BY aa.ServiceRecid DESC) as int) AS
> CustomerServiceSetRecid
>
> Note the cast, since ROW_NUMBER returns bigint
>
> Also, will this return the same CustomerServiceSetRecid all the time?
> Updates, caching etc. will be dangerous if the "primary key" changes.
>
> /G
>
> 2016-03-22 13:45 GMT+01:00 Steve Lyle <[email protected] <javascript:>>:
>
>> The suggestion entirely violates the XLM structure.
>> Attribute values must be quoted.
>>
>>
>> Also the query executed by nHibernate is successfully executed on SQL
>> server.
>> nHibernate successfully receives back the recordset results.
>>
>> The problem is that nHibernate doesn't like that the provided unique key
>> is a calculated value (not a stored attribute of a table) that nHibernate
>> can't manipulate ~~ even though I will never ask nHibernate to persist any
>> of the recordset.
>>
>>
>>
>>
>> On Monday, March 21, 2016 at 8:20:46 PM UTC-4, Steve Lyle wrote:
>>>
>>> My application calls and successfully receives a result set from my
>>> database.
>>> When I look in the log4net file I can even see the values of each field
>>> of each row returned because the values are logged as DEBUG messages in the
>>> log file.
>>>
>>> *But at the end of receiving the rows hbm fails complaining - from the
>>> log at the failure:*
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'VRM' as column: col_6_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'Flash freeze' as column: col_7_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.Int32Type - returning
>>> '14' as column: col_8_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'steve2' as column: col_9_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'steve2' as column: col_10_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'steve2' as column: col_11_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning 'steve2' as column: col_12_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.DateTimeType -
>>> returning null as column: col_13_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.Int32Type - returning
>>> null as column: col_14_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Type.StringType -
>>> returning null as column: col_15_0_
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Loader.Loader - done
>>> processing result set (35 rows)
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.Driver.NHybridDataReader -
>>> running NHybridDataReader.Dispose()
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.AdoNet.AbstractBatcher -
>>> Closed IDataReader, open IDataReaders :0
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.AdoNet.AbstractBatcher -
>>> DataReader was closed after 32 ms
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.AdoNet.AbstractBatcher -
>>> Closed IDbCommand, open IDbCommands: 0
>>> 2016-03-21 14:36:49,820 [11] DEBUG NHibernate.AdoNet.ConnectionManager -
>>> aggressively releasing database connection
>>> 2016-03-21 14:36:49,820 [11] DEBUG
>>> NHibernate.Connection.ConnectionProvider - Closing connection
>>> 2016-03-21 14:36:49,820 [11] DEBUG
>>> NHibernate.Engine.StatefulPersistenceContext - initializing non-lazy
>>> collections
>>> 2016-03-21 14:36:49,840 [11] DEBUG NHibernate.Util.ADOExceptionReporter
>>> - Could not execute query
>>> [ SQL not available ]
>>>
>>> System.NullReferenceException: Object reference not set to an instance
>>> of an object.
>>> at lambda_method(Closure , Object[] )
>>> at NHibernate.Linq.ResultTransformer.TransformTuple(Object[] tuple,
>>> String[] aliases)
>>> at NHibernate.Hql.HolderInstantiator.Instantiate(Object[] row)
>>> at NHibernate.Loader.Hql.QueryLoader.GetResultList(IList results,
>>> IResultTransformer resultTransformer)
>>> at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at NHibernate.Loader.Loader.List(ISessionImplementor session,
>>> QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
>>> at NHibernate.Loader.Hql.QueryLoader.List(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at
>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters
>>> queryParameters, ISessionImplementor session, IList results)
>>> at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression,
>>> QueryParameters queryParameters, IList results)
>>> 2016-03-21 14:36:49,843 [11] WARN NHibernate.Util.ADOExceptionReporter
>>> - System.NullReferenceException: Object reference not set to an instance of
>>> an object.
>>> at lambda_method(Closure , Object[] )
>>> at NHibernate.Linq.ResultTransformer.TransformTuple(Object[] tuple,
>>> String[] aliases)
>>> at NHibernate.Hql.HolderInstantiator.Instantiate(Object[] row)
>>> at NHibernate.Loader.Hql.QueryLoader.GetResultList(IList results,
>>> IResultTransformer resultTransformer)
>>> at NHibernate.Loader.Loader.ListIgnoreQueryCache(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at NHibernate.Loader.Loader.List(ISessionImplementor session,
>>> QueryParameters queryParameters, ISet`1 querySpaces, IType[] resultTypes)
>>> at NHibernate.Loader.Hql.QueryLoader.List(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at
>>> NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.List(ISessionImplementor
>>> session, QueryParameters queryParameters)
>>> at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters
>>> queryParameters, ISessionImplementor session, IList results)
>>> at NHibernate.Impl.SessionImpl.List(IQueryExpression queryExpression,
>>> QueryParameters queryParameters, IList results)
>>> 2016-03-21 14:36:49,843 [11] ERROR NHibernate.Util.ADOExceptionReporter
>>> - Object reference not set to an instance of an object.
>>> 2016-03-21 14:37:02,383 [11] DEBUG NHibernate.AdoNet.ConnectionManager -
>>> after autocommit
>>>
>>>
>>>
>>>
>>> *This is the query of the view the 35 rows come from:*
>>> create view vCustomersServicesSets
>>> as
>>>
>>> select
>>> ROW_NUMBER() OVER(ORDER BY aa.ServiceRecid DESC) AS
>>> 'CustomerServiceSetRecid' <-- is this something nHibernate can't deal
>>> with? And if so what can be done?
>>> ....
>>> , bb.ModifiedByName
>>> from
>>> (
>>> select
>>> a.ServiceRecid
>>> .....
>>> , b.CustomerEnabled
>>> from vServices a
>>> , vCustomers b
>>> ) aa
>>> left join ......
>>> go
>>>
>>>
>>>
>>>
>>>
>>> *This is my class from the embedded mapping:*
>>> <class name ="vCustomersServiceOptions"
>>> table="dbo.vCustomersServicesSets" dynamic-update="true">
>>> <cache usage="read-only"/>
>>> <id name="CustomerServiceSetRecid" column="CustomerServiceSetRecid"
>>> type="int">
>>> <generator class="native" />
>>> </id>
>>> <property name="DataEntryRowDisabled" />
>>> .......
>>> <property name="ModifiedByName" />
>>> </class>
>>>
>>>
>>> *What do I do?*
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.