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