The merge order determines how the atoms will be merged. In this case the ultimate picture we want is the dependence of the Java application on the Oracle database. The Java module provides the Java atoms (class, interface, method, data member etc); and the Oracle module provides the Oracle atoms (schema, table, stored procedure, tigger etc). However, the Hibernate module provides atoms which are both Java and Oracle atoms such as Java classes and their related Oracle tables. Therefore, the merge order would be to put Hibernate at the end so that the Java atoms from Hibernate module would be merged with Java atoms from the Java module, and the Oracle elements from the Hibernate module would be merged with Oracle elements from the Oracle module.