2014-02-25 33 views
1

我注意到,在JOOQ API中,「tableByName(」table_name「)。getPrimaryKey()」返回null。我想這是因爲在後臺沒有真正的查詢發生。是否有可能強制JOOQ API檢查表並閱讀元數據?或者這隻能通過查詢org.jooq.util.Database實例來完成?JOOQ API getPrimaryKey()對每個表返回null?

回答

0

A Table使用DSL.tableByName()構建的對象沒有連接到數據庫,因此即使支持它也不能動態獲取主鍵信息。

你可以,但是,通過DSLContext.meta().getPrimaryKeys()

+0

獲取主鍵信息是否有列出一個特定的模式/表的主鍵更多的選擇呢? (「chembl_17」.equals(sch.getName())){ 表格 tab = sch.getTable(「protein_classification」); if(tab!= null){UniqueKey key = tab.getPrimaryKey(); (TableField f:key.getFields()){ System.out.printf(「%s:%s%n」,f.getName(),f.getDataType()。getTypeName()); }} else {// not PK defined}}}'對不起,格式化... – user3235593

+0

關於格式化,你可以問Stack Overflow的另一個問題:-)(因爲答案可能同樣格式不正確) –