In this tutorial you will learn how to use Kodo JDO's reverse mapping tool to reverse-engineer persistent classes from a database schema.
You run a shop that sells magazines. You store information about your inventory in a relational database with the following schema:
-- Holds information on available magazines
CREATE TABLE MAGAZINE (
ISBN VARCHAR(8) NOT NULL,
ISSUE INTEGER NOT NULL,
NAME VARCHAR(255),
PUBLISHER_NAME VARCHAR(255)
PRICE FLOAT NOT NULL,
PRIMARY KEY (ISBN, ISSUE)
FOREIGN KEY (PUBLISHER_NAME) REFERENCES PUBLISHER (NAME)
);
-- Holds information on magazine articles
CREATE TABLE ARTICLE (
TITLE VARCHAR(255) NOT NULL,
AUTHOR_NAME VARCHAR(128),
PRIMARY KEY (TITLE)
);
-- Holds all the subtitles of an article
CREATE TABLE ARTICLE_SUBTITLES (
ARTICLE_TITLE VARCHAR(255),
SUBTITLE VARCHAR(128),
FOREIGN KEY (ARTICLE_TITLE) REFERENCES ARTICLE (TITLE)
);
-- Join table linking magazines and articles
CREATE TABLE MAGAZINE_ARTICLES (
MAGAZINE_ISBN VARCHAR(8),
MAGAZINE_ISSUE INTEGER,
ARTICLE_TITLE VARCHAR(255),
FOREIGN KEY (MAGAZINE_ISBN, MAGAZINE_ISSUE) REFERENCES MAGAZINE (ISBN, ISSUE),
FOREIGN KEY (ARTICLE_TITLE) REFERENCES ARTICLE (TITLE)
);
-- Each magazine has a 1-1 relation to its publisher
CREATE TABLE PUBLISHER (
NAME VARCHAR(255) NOT NULL,
REVENUE FLOAT NOT NULL,
PRIMARY KEY (NAME)
);
You've decided to write an application that will let you query your database through JDO.