如何使用Eclipselink / JPA从表中获取列名列数据类型

时间:2014-03-04 05:53:55

标签: java sql oracle jpa eclipselink

我正在研究JPA。我的要求是从表中获取列名和数据类型。 我有Query这样做,但那些是Native Query的。如果我使用那些Native Query,它是否会支持任何数据库,如Oracle,MySql,......

现在使用MySql和JPA工作正常。

获取表列名称的查询

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE  TABLE_SCHEMA = 'SchemaName'
AND   TABLE_NAME = 'TableName';   

我在JPA中使用 createNativeQuery()在Query上执行。它是否会支持所有数据库。如果没有,那么我该怎么做呢。非常感谢你。

1 个答案:

答案 0 :(得分:0)

在Oracle中,您可以使用ALL_TAB_COLUMNS表,在MS SQL服务器和MySQL中,您可以使用INFORMATION_SCHEMA.COLUMNS表来获取有关表和列的信息。

SELECT * FROM ALL_TAB_COLUMNS 
WHERE  OWNER = 'SchemaName' AND TABLE_NAME = 'TableName';