2010-12-28 12 views
0

Ich habe 3 Tabellen in mysqlNHibernate Abrufen von Daten aus mehreren Tabellen in MySQL

 
User 
--------------------- 
`id` (auto increment)(PK) 
`user_name` 
`password` 
`first_name` 
`last_name` 
`created_at` 
`modified_at` 
`email`
 
User_Role 
----------------------- 
`user_id` (PK) 
`role_id` (PK)
Role 
---------------------- 
`id`(PK) 
`name`

ich die Abfrage

SELECT u.*,r.name 
FROM user u 
JOIN user_role ur ON UR.user_id=u.id 
JOIN role r on UR.role_id=r.id 
ausführen will

Kann mir jemand mit den Kriterien helfen in NHibernate?

habe ich versucht, mit diesem Code

ICriteria Criteria = session.CreateCriteria(typeof(User)); 
Criteria.CreateAlias("User_Role", "User_Role"); 
Criteria.CreateAlias("User_Role.Role", "UsrRole"); 
Criteria.Add(Expression.Eq("id", Uid)); 

aber es ist ein Fehler zeigt.


Ich möchte mit der Abfrage der Informationen aus diesen Tabellen holen

SELECT u.*,r.name
FROM user u
JOIN user_role ur ON UR.user_id=u.id
JOIN role r on UR.role_id=r.id

ich mit diesem Code versucht

ICriteria Criteria = session.CreateCriteria(typeof(User));
Criteria.CreateAlias("User_Role", "User_Role");
Criteria.CreateAlias("User_Role.Role", "UsrRole");
Criteria.Add(Expression.Eq("id", Uid));

aber seine zeigt Fehler

+0

welche Kriterien meinen Sie. Als nächstes wäre etwas wie: wo r.name = 'etwas' – Grumpy

+0

[Wie formatiere ich meinen Code-Block] (http://meta.stackexchange.com/questions/22186/how-doi-i-format-my-code -Blöcke) – ajreal

Antwort

0

NHibernate die notwendigen Abfragen automatisch generieren. Lesen Sie http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/tutorial.html#tutorial-associations. Dann denke über deine Klassen und Abbildungen nach.

aussehen könnte

namespace FirstSolution.Domain 
{ 
    public class User 
    { 
     public Guid id { get; set; } 
     public string user_name { get; set; } 
     /* ... */ 
    } 
} 

und

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" 
        assembly="FirstSolution" 
        namespace="FirstSolution.Domain"> 

    <class name="User"> 
    <id name="id"> 
     <generator class="guid" /> 
    </id> 
    <property name="user_name" /> 
    </class> 

</hibernate-mapping> 
Verwandte Themen