I have this database -->
Code:
CREATE TABLE PLACE (
ID INT UNSIGNED NOT NULL,
DESCRIPTION VARCHAR(64) NOT NULL,
DEFAULT_PRINTER VARCHAR(128),
PRIMARY KEY(ID)
);
CREATE TABLE ENTERPRISE (
ID INT UNSIGNED NOT NULL,
USR VARCHAR(16) NOT NULL,
PSW VARCHAR(16) NOT NULL,
DATA_BASE VARCHAR(32) NOT NULL,
SERVER VARCHAR(132) NOT NULL,
NAME VARCHAR(32) NOT NULL,
MODEL VARCHAR(64),
PRIMARY KEY(ID)
);
CREATE TABLE ARTICLE (
ID INT NOT NULL,
ENTERPRISE_ID INTEGER UNSIGNED NOT NULL,
CODE VARCHAR(16) NULL,
DESCRIPTION VARCHAR(64) NULL,
STOCK INTEGER UNSIGNED NULL,
PRIMARY KEY(ID),
FOREIGN KEY(ENTERPRISE_ID) REFERENCES ENTERPRISE(ID)
);
CREATE TABLE STOCK_MOVEMENTS (
MOVEMENT INTEGER UNSIGNED NOT NULL,
TO_PLACE_ID INTEGER UNSIGNED,
FROM_PLACE_ID INTEGER UNSIGNED ,
MOVEMENT_TYPE VARCHAR(64),
ARTICLE_ID INTEGER UNSIGNED NOT NULL,
AMOUNT INTEGER UNSIGNED NULL,
MOVEMENT_DATE DATETIME NULL,
MOVEMENT_TARGET VARCHAR(32) NULL,
PRIMARY KEY(MOVEMENT),
FOREIGN KEY(ARTICLE_ID) REFERENCES ARTICLE(ID),
FOREIGN KEY(FROM_PLACE_ID) REFERENCES PLACE(ID),
FOREIGN KEY(TO_PLACE_ID) REFERENCES PLACE(ID)
);
I have to control the enterprise stock movements. So, the movements are saved into STOCK_MOVEMENTS table. As you can see, the movements are as --> (article, from_place, to_place, amount) basically. I have dessigned two entities --> Article and Place. I want that Article and Place entities have a movements collection that holds all movements of an article, and all movements of a place, respectly.
So, the mapping for Article.hbm.xml would be -->
Code:
<bag name="Movements" cascade="all-delete-orphan" inverse="true" lazy="false">
<key column="ARTICLE_ID">
<one-to-many class="Model.Entities.Movement, Model"/>
</bag>
but, I don't know How Can I map movements to Place.hbm.xml, because I need all the movements that are in ToPlace and are in FromPlace.
Code:
<bag name="Movements" cascade="all-delete-orphan" inverse="true" lazy="false">
<key column="??????????????">
<one-to-many class="Model.Entities.Movement, Model"/>
</bag>
I hope that you have understood what I mean.
Thanks for all.