Similarly, for the ID column, one would look up the type key, find its value to be number, look up the sql2java.number key and return the value Integer.
Suppose in general we want SQL numbers to be represented as Java Integer values, but that the numbers in the ID column are too large and must instead be represented as a Java BigInteger. We can insert a javatype key with a BigInteger value in the dictionary for the ID column. The value of this specific key is then used instead of looking up the value for the javatype key at the top level.
In fact, this specific-to-general search behavior takes place for every key, not just those used for lookup tables. Whenever there exists a series of nested structures, if a key is not found in at the current level of nesting, the search is repeated at the level above and so on until the top level is reached. Only if all such searches fail will the key lookup fail and return an empty string as the value.
This search mechanism is an excellent way to represent default values. If all columns in a table are numeric, for example, one might place a type key with a number value at the table level and omit the key entirely from the individual column entries.