Hi,

I have a question, concerning mapping table references in nhibernate.
My (MySQL) database tables looks like that:

CREATE TABLE `games` (
  `game_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `played_time` int(10) unsigned NOT NULL,
  `dealings` int(10) unsigned NOT NULL,
  `player_1` int(10) unsigned NOT NULL,
  `player_2` int(10) unsigned NOT NULL,
  `player_3` int(10) unsigned NOT NULL,
  `player_4` int(10) unsigned NOT NULL,
  PRIMARY KEY (`game_id`),
  KEY `player_1` (`player_1`),
  KEY `player_2` (`player_2`),
  KEY `player_3` (`player_3`),
  KEY `player_4` (`player_4`),
  KEY `dealings` (`dealings`),
  CONSTRAINT `player_1` FOREIGN KEY (`player_1`) REFERENCES `players`
(`player_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `player_2` FOREIGN KEY (`player_2`) REFERENCES `players`
(`player_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `player_3` FOREIGN KEY (`player_3`) REFERENCES `players`
(`player_id`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `player_4` FOREIGN KEY (`player_4`) REFERENCES `players`
(`player_id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `players`;
CREATE TABLE `players` (
  `player_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(75) NOT NULL,
  `password` char(32) NOT NULL,
  `player_joined` int(10) unsigned NOT NULL,
  `player_name` varchar(75) DEFAULT NULL,
  `player_surname` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`player_id`),
  KEY `username` (`username`),
  KEY `joined` (`player_joined`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

As you can see, I have 4 references in table games to table users
(we're creating a Contract Bridge site). I want to know, how to map
this in nhibernate. I used:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Website" namespace="Website.Database.Model">
        <class name="Website.Database.Model.Games, Website" table="games">
                <id name="GameId" column="game_id" type="int">
                        <generator class="native" />
                </id>
                <property name="PlayedTime" column="played_time" type="int"/>
                <property name="Dealings" column="dealings" type="int"/>

                <many-to-one name="Player1" fetch="select" index="player_1"
class="Players" column="player_1" foreign-key="player_1" />
                <many-to-one name="Player2" fetch="select" index="player_1"
class="Players" column="player_2" foreign-key="player_2" />
                <many-to-one name="Player3" fetch="select" index="player_1"
class="Players" column="player_3" foreign-key="player_3" />
                <many-to-one name="Player4" fetch="select" index="player_1"
class="Players" column="player_4" foreign-key="player_4" />
        </class>
</hibernate-mapping>

but, all in all, it returns only player 4 for all players. Is it
possible to do such thing in nhibernate without using collections? I
am new in nhibernate, so any tips would be very helpfull :)

salute,
Maciej Krasuski

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
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.

Reply via email to