這(應該)是一件相當簡單的事情,但我正在掙扎。jpa中產生的表錯誤訂購
我想是這樣產生的表:
id organizationNumber name
然而,當我看到在數據庫中,我看到的排序是錯誤的。有誰知道我可以如何強迫hibernate/jpa以正確的順序生成表格嗎?
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 | | +--------------------+--------------+------+-----+---------+----------------+
這是我的實體bean的樣子:
@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; } }
關於爲什麼它是這種方式的答案是正確的,因爲在註釋時沒有真正的順序。 另一種解決方案是不使用模式自動生成。 – 2009-08-19 07:51:39
難道你不能使用反射,遍歷字段和構建列列表的方式? – cletus 2009-08-19 07:59:37
大聲笑。我不明白在@Column(order = 1)中有一個值是多麼困難,因此它需要一個order元素,然後確保正確的排序。儘管如此,謝謝你的回答。 – 2009-08-19 14:46:55