तुम भी उपवर्गों का उपयोग कर यदि आप दो अलग अलग हठ इकाइयों का उपयोग के बिना यह कर सकते हैं।
प्रत्येक दृढ़ता इकाई मैपिंग का एक अद्वितीय सेट निर्दिष्ट कर सकती है (तालिका नाम सहित)। इसे प्राप्त करने का एक तरीका दो orm.xml फ़ाइलों को बनाना है। persistence.xml में आप कुछ इस तरह की आवश्यकता होगी:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="1.0">
<persistence-unit name="mapping-1">
. . .
<mapping-file>orm-1.xml</mapping-file>
. . .
</persistence-unit>
<persistence-unit name="mapping-2">
. . .
<mapping-file>orm-2.xml</mapping-file>
. . .
</persistence-unit>
</persistence>
फिर ORM-1.xml भीतर
:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
version="1.0">
<package>mypackage</package>
<entity name="myEntity" class="myClass">
<table name="TABLE1">
</table>
</entity>
</entity-mappings>
और ORM-2.xml भीतर:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
version="1.0">
<package>mypackage</package>
<entity name="myEntity" class="myClass">
<table name="TABLE2">
</table>
</entity>
</entity-mappings>
आप प्रत्येक PersistenceUnit (संभवतः आप जो चाहते हैं) के लिए एक अलग इकाई MananFactory बनाने की आवश्यकता होगी, लेकिन यदि आप अलग-अलग डेटाबेस (विभिन्न तालिका नामों के साथ) पर एक ही कक्षा का उपयोग करना चाहते हैं तो यह जाने का एक तरीका होगा।
यह काम करता है, धन्यवाद! हालांकि, टॉपलिंक के लिए, TABLE_PER_CLASS समर्थित नहीं है। मैंने @mappedSuperClass विधि की कोशिश की और यह भी काम करता है। –
जो भी विरासत बनाम मैप्डसपर क्लास के बारे में अनिश्चित है, उनके यहां वर्णित और तुलना की गई है: http://stackoverflow.com/a/9669719/2278186 – SatA