Hello guys I've tried searching for a solution to this problem for a period of time. Couldn't find it. I have two classes which I will simplify. My problem is that i want a unidirectional one-to-one mapping between Player and Clan. Now I saw examples which have foreign key in ther id. But I don't understand it. This mapping is not producing a column in my Clans table for ClanLeader... Am i missing something? Thank you all for help.
public class Clan{ private Int32 id; public virtual Int32 Id { get { return id; } set { id = value; } } private string name; public virtual string Name { get { return name; } set { name = value; } } private Player clanLeader; public virtual Player ClanLeader { get { return clanLeader; } set { clanLeader = value; } } } Then we have mapping for Clan:
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernateSQLite" namespace="NHibernateSQLite" > <class name="GamingOrganizerDomainModel.Clan, GamingOrganizerDomainModel" table="Clans" lazy="false"> <id name="id" access="field" column="Clan_ID" type="Int32"> <generator class="native"></generator> </id> <property name="Name" column="Clan_Name" unique-key="ClanNameConstraint" type="String"/> <one-to-one name="ClanLeader" class="GamingOrganizerDomainModel.Player, GamingOrganizerDomainModel" /> </class> </hibernate-mapping> Next is the class Player:
public class Player{ private Int32 id; public virtual Int32 Id { get { return id; } set { id = value; } } private string nickname; public virtual string Nickname { get { return name; } set { name = value; } } } And mapping for Player:
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="NHibernateSQLite" namespace="NHibernateSQLite" > <class name="GamingOrganizerDomainModel.Player, GamingOrganizerDomainModel" table="Players" lazy="false"> <id name="id" column="Player_ID" access="field" type="Int32"> <generator class="native" /> </id> <property name="nickname" access="field" column="Nickname"/> </class> </hibernate-mapping>