Sorry if I did too much TL;DR but this reads very much like Apache Torque, which has been around for a very loooooooong time.<p><a href="https:&#x2F;&#x2F;db.apache.org&#x2F;torque&#x2F;torque-4.0&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;db.apache.org&#x2F;torque&#x2F;torque-4.0&#x2F;index.html</a><p>Apache Torque is an object-relational mapper for java. In other words, Torque lets you access and manipulate data in a relational database using java objects. Unlike most other object-relational mappers, Torque does not use reflection to access user-provided classes, but it generates the necessary classes (including the Data Objects) from an XML schema describing the database layout. The XML file can either be written by hand or a starting point can be generated from an existing database. The XML schema can also be used to generate and execute a SQL script which creates all the tables in the database.<p>As Torque hides database-specific implementation details, Torque makes an application independent of a specific database if no exotic features of the database are used.<p>Usage of code generation eases the customization of the database layer, as you can override the generated methods and thus easily change their behavior. A modularized template structure allows inclusion of your own code generation templates during the code generation process.