2011-05-11 11 views
7

Este es mi POJO anotados como entidad¿Cómo mantener el orden de las columnas al crear una nueva tabla usando hibernación?

@Entity 
@Table(name = "book", catalog = "book_db") 
public class Book { 
    private Integer bookId; 
    private String bookName; 
    private String bookShortDesc; 
    private String bookDesc; 
    private String bookAuthor; 
} 
@Id 
@GeneratedValue(strategy = IDENTITY) 
@Column(name = "book_id", unique = true, nullable = false) 
public Integer getBookId() { 
    return this.bookId; 
} 

@Column(name = "book_name", nullable = false, length = 256) 
public String getBookName() { 
    return this.bookName; 
} 
@Column(name = "book_short_desc", nullable = false, length = 1024) 
public String getBookShortDesc() { 
    return this.bookShortDesc; 
} 

etc ......

la entidad anterior se ha creado usando anotación, cuando miro a la base de datos MySQL, las columnas no se crean en el orden, he escrito a continuación; en cambio, las primeras columnas son book_id, luego book_desc, luego book_athor, luego book_short_desc y luego book_name.

mi pregunta es ¿cómo puedo decir hibernate para crear las columnas en el mismo orden que he escrito en el código java?

¿hay alguna anotación para eso?

respecto

+0

Su código nunca debe depender del orden de las columnas en la base de datos. De hecho, técnicamente no hay garantía de que las columnas se devolverán en un orden particular cuando SELECCIONE *. Si desea las columnas en un orden particular, especifíquelas en su consulta SQL. – artbristol

Respuesta

2

Suponiendo que significan las tablas de bases de datos se generan a través hbm2ddl.auto que se puso a CREATE o similares, there is no way to specify the order of the columnsal menos en 2008, según un miembro del equipo de hibernación.

Mi consejo sería crear la base de datos a través de una secuencia de comandos de base de datos mantenida por separado (posiblemente junto con hbm2ddl.auto = VALIDATE para verificar que coincida con las entidades). El mantenimiento de la base de datos a través de scripts se vuelve mucho más necesario una vez que la aplicación entra en producción.

Cuestiones relacionadas