Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 209
  • Last Modified:

Understanding CMR

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
Dada44
Asked:
Dada44
  • 3
1 Solution
 
zzynxSoftware engineerCommented:
>> all the examples are too long and complicated for me to understand
Maybe this isn't: http://www.ideas2work.com/cmr-local.html
0
 
Dada44Author Commented:
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
 
zzynxSoftware engineerCommented:
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now