Hibernate输出列的名称

时间:2015-04-06 21:39:39

标签: java mysql hibernate rest

我想在MySql上从我的数据库表中输出列的名称。我使用Rest on Java,maven,tomcat,hibernate。

此代码不起作用:

personDao.java:

public List<Person> getHeaders() {
    List<Person> persons = null;
    Session session = null;

    try {
        session = sessionFactory.openSession();
        session.beginTransaction();
        persons = session.createQuery("SHOW FIELDS FROM person").list();
        session.getTransaction().commit();
    } catch (Exception ex) {
        if (session != null) {
            session.getTransaction().rollback();
        }
    } finally {
        if (session != null) {
            session.close();
        }
    }
    return persons;
}

service.java:

 @GET
@Path("/getHeaders")
@Produces(MediaType.APPLICATION_JSON)
public List<Person> getHeaders() {
    return personDao.getHeaders();
}

请帮帮我,如何输出列的名称?

2 个答案:

答案 0 :(得分:0)

您可以使用information_schema数据库,然后使用标准的hibernate查询定义。在信息模式中,您可以使用查询:

select * from COLUMNS WHERE table_name='person';

答案 1 :(得分:0)

你可以看到这篇文章:Get column name of property mapped with Hibernate

((Column) sessionFactoryBean.getConfiguration().getClassMapping(Person.class.getName())
     .getProperty("myProperty").getColumnIterator().next()).getName();

Get table column names in Hibernate