获取activejdbc中表的列顺序

时间:2018-07-16 22:01:04

标签: mysql activejdbc

是否有一种方法可以按照在activejdbc中数据库中定义的顺序获取表中的列?我尝试过:

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

但是,返回的地图具有按字母顺序排列的列,而不是表中定义的顺序。

如果这很重要,我正在使用MySQL。

1 个答案:

答案 0 :(得分:0)

它使用标准的JDBC元数据调用,请在此处查看:Registry#getColumns

但是,这是从JDBC驱动程序返回的,但已将其添加到代码中的Map中。如您所知,地图不以任何方式排序。不知道为什么您需要按与数据库中定义的顺序相同的顺序获取列,或者甚至是否有可能。

如果您真的想要此功能,则可以降至数据库级别:

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

这样,您可以获得任何驾驶员可以提供的(您的里程将受到驾驶员实施的限制)