Mapping a class several times
Imagine that you have several tables with some columns in common. For example, you could have ITEM_AUCTION and ITEM_SALE tables. Usually you map each table to an entity persistent class, ItemAuction and ItemSale respectively. With the help of entity names, you can save work and implement a single persistent class.
To map both tables to a single persistent class, use different entity names (and usually different property mappings):
The model.Item persistent class has all the properties you mapped: id, description, initialPrice, and salesPrice. Depending on the entity name you use at runtime, some properties are considered persistent and others transient:
Item itemForAuction = new Item();
itemForAuction.setDescription(“An item for auction”);
itemForAuction.setInitialPrice( new BigDecimal(99) );
Item itemForSale = new Item();
itemForSale.setDescription(“An item for sale”);
Domain models and metadata
itemForSale.setSalesPrice( new BigDecimal(123) );
Thanks to the logical entity name, Hibernate knows into which table it should insert the data. Depending on the entity name you use for loading and querying entities, Hibernate selects from the appropriate table.
content from http://prabhakars.blogspot.com/atom.xml