blob: 05121f6979fdad1143eba7145558ce0e09f91fea [file] [log] [blame]
---
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
title: ORM Case Study
url: /docs/3.0/orm-case-study.html
layout: docs_legacy
---
<H2><A name="ORMCaseStudy-ORMCaseStudy"></A>ORM Case Study</H2>
<P>This chapter shows how ORM (Object Relational Modeling) approach should be chosen based on the project requirements and other factors. It contains links to technical aspects of modeling that are discussed elsewhere. A few scenarios are shown below that describe the most common cases that a development team may encounter on a typical O/R project. Lets assume an imaginary company called &quot;Some Company&quot; that sells services to consumers as its main business, but also sells consumer products, and works with business customers. There are a number of project teams working on a set of Object/Relational projects. </P>
<H3><A name="ORMCaseStudy-Project1%3AJavaInterfacetoanExistingDatabase"></A>Project 1: Java Interface to an Existing Database</H3>
<P>&quot;Some Company&quot; has a billing system that runs on Sybase database, that uses a set of UNIX C++ applications to perform nightly batch jobs and print the bills. The project goal is to create a Java client-server Object/Relational system that will be used by customer service representatives to provide customer support and correct billing errors. Such system must use the existing database schema without changing it, but both Swing frontend and Java business layer that performs the database access have to be created from scratch. </P>
<H3><A name="ORMCaseStudy-Project2%3ANewSystem"></A>Project 2: New System</H3>
<P>&quot;Some Company&quot; is planning a brand new e-commerce site for its web users. Both the database and Java business objects must be designed from scratch as a part of the same project.</P>
<H3><A name="ORMCaseStudy-Project3%3AConvertinganExistingJavaBusinessFramework"></A>Project 3: Converting an Existing Java Business Framework</H3>
<P>Before getting into O/R technology, &quot;Some Company&quot; created a set of Java applications for its sales and marketing teams working with business customers. These applications use a custom persistence framework. The goal of the project is to convert it to Cayenne-based project, preserving all business rules, and using the existing database.</P>
<H3><A name="ORMCaseStudy-Sections"></A>Sections</H3>
<OL>
<LI><A href="java-interface-to-an-existing-database.html" title="Java Interface to an Existing Database">Java Interface to an Existing Database</A></LI>
<LI><A href="new-system.html" title="New System">New System</A></LI>
<LI><A href="converting-an-existing-business-framework.html" title="Converting an Existing Business Framework">Converting an Existing Business Framework</A></LI>
</OL>