tutorial example ejemplos java hibernate jpa

example - jpa java



Orden incorrecto en la tabla generada en jpa (2)

Esto (debería) ser algo bastante simple de hacer, sin embargo estoy luchando.

Quiero que se genere una tabla como esta:

id organizationNumber name

Sin embargo, cuando miro en la base de datos, veo que el orden es incorrecto. ¿Alguien sabe cómo puedo forzar hibernate / jpa para generar la tabla con el orden correcto?

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 | | +--------------------+--------------+------+-----+---------+----------------+

Así es como se ve mi entidad 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; } }


DataNucleus permite que la extensión especifique la posición para la generación de esquema, FWIW.


Hibernate genera columnas en orden alfabético . Según esta publicación, la razón se da como:

Se ordena para garantizar el orden determinista entre clusters.

No podemos confiar en que vm devuelva los métodos en el mismo orden cada vez, así que tuvimos que hacer algo.

Al parecer, solía estar en el orden de aparición, pero esto cambió entre 3.2.0 GA y 3.2.1 GA.

También encontré que la generación automática de Schema crea columnas en orden alfabético para las claves primarias compuestas y esto parece ser como su problema. Este boleto es sobre el cambio de orden en las claves primarias y que afecta negativamente el rendimiento del índice.

No hay ninguna solución para esto aparte de una solución de nombrar las columnas de tal manera que salgan en el orden correcto (no, no estoy bromeando).