在 activejdbc 中获取 table 的列顺序

Get column order of table in activejdbc

有没有办法按照它们在 activejdbc 数据库中定义的顺序获取 table 的列?我试过这个:

    User u = new User(); // User extends org.javalite.activejdbc.Model
    Map<String, ColumnMetadata> columns = u.getMetaModel().getColumnMetadata();

但是,返回的映射中的列按字母顺序排列,而不是 table 中定义的顺序。

如果重要的话,我正在使用 MySQL。

它使用标准 JDBC 元数据调用,请参阅此处:Registry#getColumns

然而,这是从 JDBC driver 返回的,它被添加到代码中的 Map。如您所知,地图不以任何方式排序。不确定为什么您需要以与数据库中定义的顺序相同的顺序获取列,或者这是否可能。

如果您真的想要这个,您可以降到数据库级别:

Connection con = Base.connection(); 
// get metadata from the connection any way you want

通过这种方式,您可以获得 driver 所能提供的一切(您的里程将受到 driver 实施的限制)