これはやや簡単なことですが、私は苦労しています。私は、テーブルはこのように生成させたい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; } }
注釈に関しては実際の注文がないので、この方法が正しい理由についてのあなたの答えは正しいです。 別の解決策は、スキーマ自動生成を使用しないことです。 –
リフレクションを使用してフィールドを反復処理し、そのように列リストを作成できませんでしたか? – cletus
LOL。 @Column(order = 1)に値を持たせてorder要素を取得し、正しい順序付けを保証することがどれほど難しいのか理解できません。それにもかかわらず、あなたの答えに感謝します。 –