0
我有一個java
應用程序,它使用Carbanado
與Oracle數據庫進行交互。通過應用程序獲取表之間的父子關係
我想知道所有表中的依賴關係圖(其中依賴關係是外鍵約束),以通過應用程序進行進一步處理。
舉個例子:
Table A defines dependency over Table B and Table C (means Table A has foreign key constraint on Table B and Table C).
Table B defines dependency over Table C and Table D.
我想是這樣的(這將是真實的情景2 d圖)。
Table A=>Table B=>Table C=>Table D
這給出一個想法,在表d行可以在表A,B和C對應的刪除行
所有實體類實現一個共同的接口(Storable
)和依賴性之前首先刪除用@Join
註解。加載所有的類並使用廣泛的反射似乎是一種方法來做到這一點。
>>Load all classes.
>>Create 2D matrix (adjacency matrix) and populate it by going through each class and extracting/processing @Join annotation.
>>Put 0/1 at suitable position.
>>Final matrix will be showing the dependencies.
>>Perform any topological operation.
有什麼更好的辦法嗎?
PS:
附加信息:
- 只給你一個想法,進一步的處理將創建數據的快照(在XML/JSON)格式按依賴。
- 依賴關係圖需要以正確的順序刪除記錄。
謝謝!
我沒有看到顯示外鍵約束。我看到的只是FROM和TO表中的系統表。難道我做錯了什麼? – instanceOfObject 2014-10-10 00:43:21
它似乎沒有返回用戶約束,並且只在TABLE_NAME和R_TABLE_NAME中返回WRM $ _SNAPSHOT和WRM $ _DATABASE_INSTANCE。 – instanceOfObject 2014-10-10 19:46:42