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
|