問題:
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; // ... }
以上是為什麼 JPA 產生的表格中的列按字母順序排列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!