JORA allows you to pack the closure of such objects and store it as BLOB field in database. Inheritance relationship between tables is specified by correspondent relationship between Java classes mapped to the table. When Table object is constructed, you should pass to constructor name of Java class, name of database table, session object and name of primary key for this table. Session object is used to encapsulate connection with database server. It should be opened before first access to the table.
Primary key is used for update and remove operation, to locate necessary record within table.
Primary key should be atomic. It is possible not to specify session and primary key parameters in derived tables, they will be taken from base table. Otherwise NoSuchMethodError error will be raised. Prior to version 1.2 of JDK, it is not possible to access through reflection mechanism fields of non-public classes from other packages. There is no such restriction with JDK 1.2.