首頁 > Java > java教程 > 主體

為什麼 JPA 產生的表格中的列按字母順序排列?

DDD
發布: 2024-10-29 06:23:30
原創
275 人瀏覽過

Why Does JPA Generate Tables with Columns in Alphabetical Order?

JPA 產生的表格中的表格排序不正確

問題:

Java Persistence API (JPA) 似乎已產生列順序不正確的表,特別是“名稱”列出現在“組織編號”列之前,儘管所需的順序相反。

調查:

檢查表後,會發現以下順序:

+--------------------+--------------+------+-----+---------+----------------+
| 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    |                | 
+--------------------+--------------+------+-----+---------+----------------+
登入後複製

原因:

原因:

JPA 預設會依字母順序產生列。此排序旨在確保跨集群的確定性排序,並避免列位置不一致。

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

    private Long id;
    @Column(name = "a_name")
    private String name;
    @Column(name = "b_organizationNumber")
    private String organizationNumber;

    // ...
}
登入後複製

不幸的是,此問題沒有直接的解決方法。一種解決方法是以強制所需順序的方式手動命名列。這可以透過在列名稱前面加上適當的字母數字字元來實現,例如:此方法將強制「id」列首先出現,然後是「name」(前綴為「a」​​) ),然後是“organizationNumber”(前綴為“b”)。

以上是為什麼 JPA 產生的表格中的列按字母順序排列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板