<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    
<hibernate-mapping>
    
    <class name="org.wamblee.usermgt.User" table="USERS" select-before-update="true">
        <id name="primaryKey" column="ID" type="long">
            <generator class="native"/>
        </id>
        <version name="persistedVersion" column="VERSION"/>
        <property name="name" column="NAME" unique="true"/>
        <property name="passwordString" column="PASSWORD"/>
        <set name="groupSet" table="USER_GROUPS" lazy="false"> 
            <key column="USER_ID"/>
            <many-to-many class="org.wamblee.usermgt.Group" column="GROUP_ID"/>
        </set>
    </class>
    
    <query name="findUserByName">
        from org.wamblee.usermgt.User user where user.name = :name
    </query>
    
    <query name="findUserByGroupName">
      select user
          from org.wamblee.usermgt.User user
            join user.groupSet grp
            where grp.name = :name 
    </query>
    
    <query name="countUsers">
        select count(*)
        from org.wamblee.usermgt.User user 
    </query>
    
    
</hibernate-mapping>