@Entity और @Table में नाम विशेषता


84

मुझे संदेह है, क्योंकि नाम की विशेषता @Entity और @Table दोनों में है

उदाहरण के लिए, मुझे नाम विशेषता के लिए समान मान रखने की अनुमति है

@Entity(name = "someThing")
@Table(name = "someThing")

और मेरे पास एक ही वर्ग के लिए अलग-अलग नाम हो सकते हैं

 @Entity(name = "someThing")
 @Table(name = "otherThing")

क्या कोई मुझे बता सकता है कि इन दोनों में क्या अंतर है और हम दोनों में समान विशेषता क्यों है?


@Entity को अब हटा दिया गया है।
फिलिप रीगो

8
@PhilipRego: जबकि हाइबरनेट के \ _Entity (यानी org.hibernate.annotations.Entity) को पदावनत किया जाता है, JPA का \ _Entity (यानी javax.persistence.Entity) जीवित और अच्छी तरह से होता है।
डेविड सिएगल

जवाबों:


106
@Entity(name = "someThing") => this name will be used to name the Entity
@Table(name = "someThing")  => this name will be used to name a table in DB

तो, पहले मामले में आपकी तालिका और इकाई का एक ही नाम होगा, जो आपको HQL या JPQL लिखते समय इकाई के समान नाम के साथ अपनी तालिका तक पहुंचने की अनुमति देगा।

और दूसरे मामले में लेखन प्रश्नों, जबकि आप नाम में दी गई उपयोग करने के लिए @Entity और नाम में दिए गए @Table डीबी में तालिका नाम के लिए इस्तेमाल किया जाएगा।

तो HQL में अपने कुछ के पास भेजेगा otherThing डीबी में।


19

@Entity(name = "someThing")=> इस नाम का उपयोग डोमेन की पहचान करने के लिए किया जाएगा। यह नाम केवल hqlडोमेन ऑब्जेक्ट के प्रश्नों ..ie ..name द्वारा पहचाना जाएगा

@Table(name = "someThing") => यह नाम डोमेन ऑब्जेक्ट..ie ..name तालिका द्वारा निर्दिष्ट तालिका के लिए उपयोग किया जाएगा


16

@Entity यह प्रदर्शित करने के लिए मॉडल कक्षाओं के साथ उपयोगी है कि यह इकाई या तालिका है

@Table यदि आप कोई अलग नाम प्रदान करना चाहते हैं तो आपकी तालिका को कोई विशिष्ट नाम प्रदान करने के लिए उपयोग किया जाता है

नोट: यदि आप उपयोग नहीं करते हैं @Tableतो हाइबरनेट पर विचार करें कि @Entityडिफ़ॉल्ट रूप से आपकी तालिका का नाम है और @Entityहोना चाहिए

@Entity    
@Table(name = "emp")     
public class Employee implements java.io.Serializable    
{

}

2

@ तालिका का नाम विशेषता वास्तविक तालिका नाम है। @ एंटिटी का नाम उपयोगी है यदि आपके पास एक ही नाम के साथ दो @Entity कक्षाएं हैं और आपको उन्हें रनिंग क्वेरी में अंतर करने के लिए एक तरीके की आवश्यकता है।


3
आपके पास एक ही नाम वाली दो संस्थाएँ कब हैं? क्या यह तब होता है जब वर्ग के नाम समान होते हैं, लेकिन कक्षाएं अलग-अलग पैकेज में होती हैं (योग्य नाम अलग हैं)?
croraf
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.