verwendetes Datenbanksystem: MSSQL 2008 R2
Hallo zusammen,
ich würde gerne aus einer View(!) Daten auslesen und von dieser eine Join machen auf eine Tabelle und mir von dieser nur 2 Spalten dazujoinen.
MyView
Spalte1
Spalte2
DieIdMitDerIchJoinenWill
Spalte4
MyTable
DieIdMitDerIchJoinenWill (PK)
Spalte2
Spalte3
Spalte4
Bisher sieht mein mapping so aus:
<class name="MyClass" table="MyView">
<id name="Spalte1" column="Spalte1"/>
<property name="Spalte2" column="Spalte2" />
<property name="DieIdMitDerIchJoinenWill" column="DieIdMitDerIchJoinenWill" />
...
<join table="MyTable">
<key column="DieIdMitDerIchJoinenWill " foreign-key="DieIdMitDerIchJoinenWill "/>
<property name="Spalte2" column="Spalte2" />
<property name="Spalte3" column="Spalte3" />
</join>
</class>
Ich möchte also nur Spalte2 und 3 aus der Tabelle mit in meine Klasse aufnehmen. Aber das Join funktioniert nicht. Ich bekomme zwar ein Ergebnis zurück, aber es enthält statt 5xx Zeilen nur 20. Das macht mich stutzig. Wenn ich den Innerjoin händisch auf der DB ausführe geht es. Kommentiere ich den Join im obigen Mapping aus, geht es auch (Aber ohne meine 2 Werte aus der Tabelle...)
Viele liebe Grüsse
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hi Coffeebean
Ich kann dir zwar nicht genau sagen woran es bei dem NH Mapping liegen könnte, aber schau dir doch im SQL Server Profiler mal an was für ein Statement an den Server geschickt wird, vielleicht hilft dir das auf die Spur.
Viel Glück
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Hallo Florian,
also sieht das Mapping für dich soweit richtig aus?
Das mit dem SQL Server Profiler schaue ich mir mal an, Danke.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
also sieht das Mapping für dich soweit richtig aus?
Keine Ahnung 😁 - Das meinte ich mit "kann ich nicht sagen".
Grüße
Flo
Blog: Things about Software Architecture, .NET development and SQL Server
Twitter
Google+
Je mehr ich weiß, desto mehr weiß ich was ich noch nicht weiß.
Ich glaube das Mapping passt nicht, da id mit key gejoint wird.
Aber setz mal
<property name="show_sql">true</property>
in deiner nhibernate config. Dann siehst du das Statement im Output Window welches abgesetzt wird, oder du nimmst eben den Profiler.
Ich glaube das Mapping passt nicht, da id mit key gejoint wird.
Kann man das ändern? Also ich dachte es geht, wie mein Mapping oben schon erkennen lässt.
Viele liebe Grüsse
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo zusammen,
die Vermutung war richtig. NHibernate joint auf die oben angegebene ID. Meine Frage ist nun, wie ich das umbiegen kann, dass er eben nicht die ID-Spalte von "MyView" nimmt, sondern eine andere.
Viele liebe Grüsse
Coffeebean
EDIT:
Ich setze jetzt das "Property-Ref" auf das Property der Klasse, das die Spalte angibt, mit der er joinen soll...aber ohne Erfolg.
<join table="DataPoint">
<key column="DieIdMitDerIchJoinenWill " foreign-key="DieIdMitDerIchJoinenWill"/>
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Ich kann morgen mal auf der Arbeit gucken. Ich glaube dass ich das auch mal so in einem unserer Projekte gebraucht habe.
Hallo chavez,
das wäre nett...ich bin am Verzweifeln und kann mir ienfach nicht vorstellen, dass NHibernate so etwas nicht kann.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Hallo zusammen,
ich habe mittlerweile ein wenig weitergeschaut. Das Problem ist nicht gelöst, ich habe sogar noch das heir gefunden:
https://nhibernate.jira.com/browse/NH-1452
was mein Problem ziemlich genau beschreibt:
"The <join> element does not use the property-ref attribute on it's <key>.
It will always join to the child table by the primary key."
Ich habe NHibernate 2.1.2.4000. Ist die dort auch betroffen? Wenn dem so ist, kann ich mich dumm und dämlich probieren.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck