java - जेपीए में जेनरेट टेबल में गलत ऑर्डरिंग




hibernate jpa (2)

डेटा न्यूक्लियस स्कीमा पीढ़ी, एफडब्ल्यूआईडब्ल्यू के लिए स्थिति निर्दिष्ट करने वाले एक्सटेंशन को अनुमति देता है।

यह (करना चाहिए) करना एक आसान काम होना चाहिए, हालांकि मैं संघर्ष कर रहा हूं।

मैं इस तरह एक टेबल उत्पन्न करना चाहता हूं:

id 
organizationNumber 
name

हालांकि, जब मैं डेटाबेस में देखता हूं, तो मुझे लगता है कि ऑर्डरिंग गलत है। क्या कोई जानता है कि मैं सही क्रम के साथ तालिका उत्पन्न करने के लिए हाइबरनेट / जेपीए को कैसे मजबूर कर सकता हूं?

desc Organization;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id                 | bigint(20)   | NO   | PRI | NULL    | auto_increment | 
| name               | varchar(255) | NO   |     | NULL    |                | 
| organizationNumber | varchar(255) | NO   | UNI | NULL    |                | 
+--------------------+--------------+------+-----+---------+----------------+

इस प्रकार मेरी इकाई बीन इस तरह दिखती है:

@Entity
@NamedQuery(name = "allOrganizations", query = "SELECT org FROM Organization org order by name")
public class Organization {

    private Long id;
    private String organizationNumber;
    private String name;

    public Organization() {
    }

    public Organization(String name) {
        this.name = name;
    }

    @Id
    @GeneratedValue
    public Long getId() {
        return id;
    }

    @SuppressWarnings("unused")
    private void setId(Long id) {
        this.id = id;
    }

    @NotEmpty
    @Column(unique=true, nullable=false)
    public String getOrganizationNumber() {
        return organizationNumber;
    }
       public void setOrganizationNumber(String organizationNumber) {
        this.organizationNumber = organizationNumber;
    }


    @NotEmpty
    @Column(nullable=false)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return this.name + " " + this.organizationNumber;
    }
}

हाइबरनेट वर्णमाला क्रम में स्तंभ उत्पन्न करता है। इस पोस्ट के अनुसार कारण दिया गया है:

यह समूहों में निर्धारक आदेश देने के लिए क्रमबद्ध है।

हम हर बार एक ही क्रम में विधियों को वापस करने के लिए वीएम पर भरोसा नहीं कर सकते हैं इसलिए हमें कुछ करना पड़ा।

जाहिर है यह घटना के क्रम में होता था लेकिन यह 3.2.0 जीए और 3.2.1 जीए के बीच बदल गया।

मैंने यह भी पाया कि स्कीमा ऑटो पीढ़ी यौगिक प्राथमिक कुंजी के लिए वर्णमाला क्रम में स्तंभ बनाता है और यह आपकी समस्या की तरह प्रतीत होता है। यह टिकट प्राथमिक कुंजी में बदलने के क्रम के बारे में है और यह सूचकांक प्रदर्शन पर नकारात्मक प्रभाव डालता है।

स्तंभों को नाम देने के कामकाज के अलावा इस के लिए कोई फिक्स नहीं है कि वे सही क्रम में बाहर आते हैं (नहीं, मैं मजाक नहीं कर रहा हूं)।





jpa