Solved

Understanding CMR

Posted on 2004-09-13
6
196 Views
Last Modified: 2010-03-31
Hi,

I've been looking for a site or a book where to learn CMR but I'm getting crazy, all the examples are too long and complicated for me to understand.

Why do I need CMR?
Well, I have two tables in my database: Tickets and Concerts. If I want to calculate the number of tickets demanded for one concert .. I suppose I need to relate Tickets and Concerts beans .. but how? What fields should I create in the tables?

I'm starting to use jBuilder and creating the relationship, once I understand what fields I have to use, is not a problem but what is a mystery to me is: after creating the fields in database and the relationship in between the beans, what's next? which is the code I have to use in the servlet in order to manage the relationship? And what about the transactions? How are they used within CMR?

Thanks a million in advance
0
Comment
Question by:Dada44
  • 3
6 Comments
 
LVL 37

Accepted Solution

by:
zzynx earned 200 total points
ID: 12042000
>> all the examples are too long and complicated for me to understand
Maybe this isn't: http://www.ideas2work.com/cmr-local.html
0
 
LVL 37

Expert Comment

by:zzynx
ID: 12042005
0
 

Author Comment

by:Dada44
ID: 12073732
Thanks a lot. I’ve been studying the examples and I’ve created an example myself in order to apply it .. everything seems to be ok but I get an “ejb not bound” error all the time, no matter what I change.

Maybe you can help me, the example I’ve written is about to get all books from a book category (Fiction for example)
This is the jsp:


<%@page import="java.util.*,javax.transaction.*,javax.naming.*, folder.*" %>
<%
      Context ctx = new InitialContext();
      CategoryHome ch = (CategoryHome) ctx.lookup("ejb/Category");
      Category c = ch.findByPrimaryKey("Fiction");
     
      UserTransaction ut =  (UserTransaction) ctx.lookup("java:comp/UserTransaction");
      ut.begin();
      
      Collection books = c.getBook();
       %>
       
       <b>Books within the category  <%= c.getCategoryName() %></b><br>
       
         <%      Iterator it=books.iterator();
            while(it.hasNext())
            {
                  Book b=(Book)it.next();

        %>
       
<%=b.getBookName()%>

 <% }
         ut.commit();

   %>    



JBOSS.XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS 3.2//EN" "http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd">
<jboss>
  <enterprise-beans>
    <entity>
      <ejb-name>Book</ejb-name>
      <jndi-name>Folder/BookRemote</jndi-name>
      <local-jndi-name>Book</local-jndi-name>
    </entity>
    <entity>
      <ejb-name>Category</ejb-name>
      <jndi-name>ejb/Category</jndi-name>
      <local-jndi-name>Category</local-jndi-name>
    </entity>
  </enterprise-beans>
</jboss>

EJB-JAR.XML (roughly)

<ejb-jar>
  <relationships>
    <ejb-relation>
      <ejb-relation-name>book-category</ejb-relation-name>
      <ejb-relationship-role>
        <description>book</description>
        <ejb-relationship-role-name>BookRelationshipRole</ejb-relationship-role-name>
        <multiplicity>Many</multiplicity>
        <relationship-role-source>
          <description>book</description>
          <ejb-name>Book</ejb-name>
        </relationship-role-source>
        <cmr-field>
          <description>category</description>
          <cmr-field-name>category</cmr-field-name>
        </cmr-field>
      </ejb-relationship-role>
      <ejb-relationship-role>
        <description>category</description>
        <ejb-relationship-role-name>CategoryRelationshipRole</ejb-relationship-role-name>
        <multiplicity>One</multiplicity>
        <relationship-role-source>
          <description>category</description>
          <ejb-name>Category</ejb-name>
        </relationship-role-source>
        <cmr-field>
          <description>book</description>
          <cmr-field-name>book</cmr-field-name>
          <cmr-field-type>java.util.Collection</cmr-field-type>
        </cmr-field>
      </ejb-relationship-role>
    </ejb-relation>
  </relationships>
  <assembly-descriptor>
    <container-transaction>
      <method>
        <ejb-name>Book</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>Supports</trans-attribute>
    </container-transaction>
    <container-transaction>
      <method>
        <ejb-name>Category</ejb-name>
        <method-name>*</method-name>
      </method>
      <trans-attribute>Supports</trans-attribute>
    </container-transaction>
  </assembly-descriptor>
</ejb-jar>
0
 
LVL 37

Expert Comment

by:zzynx
ID: 12073787
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction This article is the second of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers the basic installation and configuration of the test automation tools used by…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Viewers learn about the scanner class in this video and are introduced to receiving user input for their programs. Additionally, objects, conditional statements, and loops are used to help reinforce the concepts. Introduce Scanner class: Importing…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question