logo       

roller/src/org/roller/business/hibernate HibernateRefererManagerImpl.java,1: msg#00157

Subject: roller/src/org/roller/business/hibernate HibernateRefererManagerImpl.java,1.4,1.5
Update of /cvsroot/roller/roller/src/org/roller/business/hibernate
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31584/src/org/roller/business/hibernate

Modified Files:
        HibernateRefererManagerImpl.java 
Log Message:
Fixes to Trackback and interface tweaks.


Index: HibernateRefererManagerImpl.java
===================================================================
RCS file: 
/cvsroot/roller/roller/src/org/roller/business/hibernate/HibernateRefererManagerImpl.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** HibernateRefererManagerImpl.java    29 Feb 2004 13:10:52 -0000      1.4
--- HibernateRefererManagerImpl.java    17 Mar 2004 03:57:40 -0000      1.5
***************
*** 37,41 ****
  
      //-------------------------------------------------- Startup and Shutdown
!     public HibernateRefererManagerImpl(PersistenceStrategy support) 
          throws RollerException
        {
--- 37,41 ----
  
      //-------------------------------------------------- Startup and Shutdown
!     public HibernateRefererManagerImpl(PersistenceStrategy support)
          throws RollerException
        {
***************
*** 43,54 ****
        }
  
!     //----------------------------------------------------------------------- 
   
  
      /** Type must be 'dayhits' or 'totalhits' */
!     protected int getHits(WebsiteData website, String type) 
          throws RollerException
      {
          int hits = 0;
!         if (mLogger.isDebugEnabled()) 
          {
              mLogger.debug("getHits: " + website.getName());
--- 43,54 ----
        }
  
!     //-----------------------------------------------------------------------
  
      /** Type must be 'dayhits' or 'totalhits' */
!     protected int getHits(WebsiteData website, String type)
          throws RollerException
      {
          int hits = 0;
!         if (mLogger.isDebugEnabled())
          {
              mLogger.debug("getHits: " + website.getName());
***************
*** 60,66 ****
          // For a query like this, Hibernate returns a list of lists
          List results = mStrategy.query(
!            "select sum(h.dayHits),sum(h.totalHits) from h in class " + 
!            "org.roller.pojos.RefererData " + 
!            "where h.website.user.userEnabled=? and h.website.user.userName=? 
", 
             args, types);
          Object[] resultsArray = (Object[]) results.get(0);
--- 60,66 ----
          // For a query like this, Hibernate returns a list of lists
          List results = mStrategy.query(
!            "select sum(h.dayHits),sum(h.totalHits) from h in class " +
!            "org.roller.pojos.RefererData " +
!            "where h.website.user.userEnabled=? and h.website.user.userName=? 
",
             args, types);
          Object[] resultsArray = (Object[]) results.get(0);
***************
*** 88,94 ****
      }
  
!     //----------------------------------------------------------------------- 
   
!     
!     /** 
       * @see org.roller.model.UserManager#getDaysPopularWebsites(int)
       */
--- 88,94 ----
      }
  
!     //-----------------------------------------------------------------------
! 
!     /**
       * @see org.roller.model.UserManager#getDaysPopularWebsites(int)
       */
***************
*** 102,159 ****
          {
              List list = new ArrayList();
!             
              // Drop back to JDBC because Hibernate can't handle sorting by sum
              ses = ((HibernateStrategy)mStrategy).getSession();
              Connection con = ses.connection();
              Statement stmt = con.createStatement();
!             
              String booleanRep = "'true' ";
              String driverName = con.getMetaData().getDriverName();
!             if (driverName.startsWith("MySQL")) 
              {
                  booleanRep = "1 ";
              }
!                 
              ResultSet rs = stmt.executeQuery(
                  "select u.username,w.name,sum(r.dayhits) as s "+
                  "from rolleruser as u, website as w, referer as r "+
                  "where r.websiteid=w.id and w.userid=u.id and 
u.userenabled="+booleanRep+
!              // Ben Walding (a Postgres SQL user): Basically, you have 
!              // to have all non-aggregated columns that exist in your 
               // 'SELECT' section, in the 'GROUP BY' section as well:
                  "group by u.username,w.name,w.id order by s desc limit "+max);
                  // and not this: "group by w.id order by s desc");
!             if ( rs.first() )
              {
!                 do 
                  {
                      String userName = rs.getString(1);
                      String name = rs.getString(2);
                      Integer hits = new Integer(rs.getInt(3));
!                     list.add(new WebsiteDisplayData(name,userName,hits));     
         
                  }
                  while ( rs.next() );
              }
!             
              // Would be nice:
              //Object[] args = {new Integer(max)};
!             //Type[] types = {Hibernate.INTEGER};            
              //List refs = mSupport.query("select "+
              //    "ref.website.name, "+
              //    "ref.website.user.userName, "+
              //    "sum(ref.dayHits) "+
!             //    "from ref in class org.roller.pojos.RefererData " + 
              //    "order by sum(ref.dayHits) desc limit ?",args,types);
!             //    
!             //Iterator iter = refs.iterator();    
              //while (iter.hasNext())
              //{
!             //    Object[] row = (Object[]) iter.next(); 
              //    String name = (String)row[0];
              //    String userName = (String)row[1];
!             //    Integer hits = (Integer)row[2]; 
!             //    list.add(new WebsiteDisplayData(name,userName,hits));       
       
!             //}  
!                   
              return list;
          }
--- 102,159 ----
          {
              List list = new ArrayList();
! 
              // Drop back to JDBC because Hibernate can't handle sorting by sum
              ses = ((HibernateStrategy)mStrategy).getSession();
              Connection con = ses.connection();
              Statement stmt = con.createStatement();
! 
              String booleanRep = "'true' ";
              String driverName = con.getMetaData().getDriverName();
!             if (driverName.startsWith("MySQL"))
              {
                  booleanRep = "1 ";
              }
! 
              ResultSet rs = stmt.executeQuery(
                  "select u.username,w.name,sum(r.dayhits) as s "+
                  "from rolleruser as u, website as w, referer as r "+
                  "where r.websiteid=w.id and w.userid=u.id and 
u.userenabled="+booleanRep+
!              // Ben Walding (a Postgres SQL user): Basically, you have
!              // to have all non-aggregated columns that exist in your
               // 'SELECT' section, in the 'GROUP BY' section as well:
                  "group by u.username,w.name,w.id order by s desc limit "+max);
                  // and not this: "group by w.id order by s desc");
!             if ( rs.next() )
              {
!                 do
                  {
                      String userName = rs.getString(1);
                      String name = rs.getString(2);
                      Integer hits = new Integer(rs.getInt(3));
!                     list.add(new WebsiteDisplayData(name,userName,hits));
                  }
                  while ( rs.next() );
              }
! 
              // Would be nice:
              //Object[] args = {new Integer(max)};
!             //Type[] types = {Hibernate.INTEGER};
              //List refs = mSupport.query("select "+
              //    "ref.website.name, "+
              //    "ref.website.user.userName, "+
              //    "sum(ref.dayHits) "+
!             //    "from ref in class org.roller.pojos.RefererData " +
              //    "order by sum(ref.dayHits) desc limit ?",args,types);
!             //
!             //Iterator iter = refs.iterator();
              //while (iter.hasNext())
              //{
!             //    Object[] row = (Object[]) iter.next();
              //    String name = (String)row[0];
              //    String userName = (String)row[1];
!             //    Integer hits = (Integer)row[2];
!             //    list.add(new WebsiteDisplayData(name,userName,hits));
!             //}
! 
              return list;
          }



-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
web.pylons.gene...    hurd.l4/2002-10...    kernel.commits....    user-groups.lin...    yellowdog.gener...    java.drools.use...    security.openva...    package-managem...    linux.debian.us...    qnx.openqnx.dev...    genealogy.gramp...    file-systems.if...    voip.wengophone...    tex.context/200...    ietf.smime/2003...    audio.csound.de...    culture.region....    xfree86.devel/2...    mobile.kannel.u...    distributed.con...    education.engli...    org.user-groups...    bug-tracking.gn...    recreation.bicy...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe