Sorry I don't have the time to build a test case, the problem appears only
when the log is on DEBUG and not in INFO.
To reproduce it you have to set an entity as parameter of an HQL query but
if the entity is of its type it works, if the entity is a proxy type it
throws the exception.
Message: Could not execute query[SQL: SQL not available]
Stacktrace: at NHibernate.Impl.SessionImpl.List(String query,
QueryParameters queryParameters, IList results)
at NHibernate.Impl.SessionImpl.List(String query, QueryParameters
parameters)
at NHibernate.Impl.QueryImpl.List()
at NHibernate.Impl.AbstractQueryImpl.UniqueResult()
InnerException: Castle.Proxies.UserProxy
Stacktrace: at NHibernate.Type.EntityType.ToLoggableString(Object value,
ISessionFactoryImplementor factory)
at NHibernate.Impl.Printer.ToString(IDictionary`2 namedTypedValues)
at
NHibernate.Engine.QueryParameters.LogParameters(ISessionFactoryImplementor
factory)
at NHibernate.Engine.Query.HQLQueryPlan.PerformList(QueryParameters
queryParameters, ISessionImplementor session, IList results)
at NHibernate.Impl.SessionImpl.List(String query, QueryParameters
queryParameters, IList results)Show trimmed content
Hallo
Wir verwenden nhibernate v. 3.1.0.4000 und wenn in einer HQL-Abfragen der
Parameter ist ein Proxy eines Unternehmens nhibernate wirft die Ausnahme
"Konnte Abfrage nicht ausführen [SQL: SQL nicht verfügbar]".
Zum Beispiel: Session.CreateQuery ("select count (user) von den Nutzern als
Benutzer, wo user.Chef =: chef").. SetEntity ("chef", user.Chef)
UniqueResult ()
Das Problem ist, dass nhibernate diese Proxy-Entitäten zurückgibt, und
jetzt sind sie überall knallen in der Anwendung.
Sie kommen als Ergebnis der HQL-Abfragen, als Eigenschaften anderer
Unternehmen (lazy load), innen Einheiten Sammlungen (Lazy Load).
Ist das die Wirkung des nhibernate 2nd level cache?
Wenn wir die Entitäten unproxy die HQL-Abfrage funktioniert, aber wir haben
viele von ihnen, und wir wollen nicht unproxy Code überall hinzuzufügen.
Ist das ein Fehler von NHibernate oder nicht? Wie kann es behoben werden?
Meldung: Konnte Abfrage nicht ausführen [SQL: SQL nicht verfügbar]
Stacktrace: bei NHibernate.Impl.SessionImpl.List (String query,
QueryParameters queryParameters, IList results)
am NHibernate.Impl.SessionImpl.List (String query, QueryParameters
Parameter)
bei NHibernate.Impl.QueryImpl.List ()
bei NHibernate.Impl.AbstractQueryImpl.UniqueResult ()
InnerException: Castle.Proxies.UserProxy
Stacktrace
am NHibernate.Type.EntityType.ToLoggableString (Object value,
ISessionFactoryImplementor Werk)
am NHibernate.Impl.Printer.ToString (IDictionary `2 namedTypedValues)
am NHibernate.Engine.QueryParameters.LogParameters
(ISessionFactoryImplementor Werk)
am NHibernate.Engine.Query.HQLQueryPlan.PerformList (QueryParameters
queryParameters, ISessionImplementor Sitzung IList Ergebnisse)
am NHibernate.Impl.SessionImpl.List (String query, QueryParameters
queryParameters, IList results)
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/nhusers/-/1c45tSb3vbgJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/nhusers?hl=en.