Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.domain.dao.impl;
import pt.estgp.estgweb.domain.Announcement;
import java.util.List;
import java.util.ArrayList;
import java.util.Date;
import static org.
hibernate.
criterion.
Restrictions.
*;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.Criteria;
import jomm.dao.impl.AbstractDao;
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class AnnouncementDaoImpl
extends AnnouncementDao
{
public static AnnouncementDaoImpl getInstance
()
{
if (myInstance ==
null)
myInstance =
new AnnouncementDaoImpl
();
return (AnnouncementDaoImpl
) myInstance
;
}
public List
<Announcement
> findAnnouncements
(int maxAnnouncements,List
<String
> roles
)
{
if(roles ==
null)
{
roles =
new ArrayList
<String
>();
roles.
add("all");
}
Criteria criteria = createCriteria
();
Criterion co =
null;
for(1.5.0/docs/api/java/lang/String.html">String role: roles
)
{
Criterion cor = like
("targetRoles",
"%" + role +
"%");
if(co ==
null)
co = cor
;
else
co = or
(co,cor
);
}
5+0%2Fdocs%2Fapi+Date">Date now =
new 5+0%2Fdocs%2Fapi+Date">Date();
criteria.
add(co
)
.
add(or
(lt
("startDate",now
),isNull
("startDate")))
.
add(or
(gt
("expireDate",now
),isNull
("expireDate")))
.
setMaxResults(maxAnnouncements
)
.
addOrder(Order.
desc("saveDate"));
return criteria.
list();
}
public static void main
(1.5.0/docs/api/java/lang/String.html">String[] args
)
{
AbstractDao.
getCurrentSession().
beginTransaction();
List
<String
> roles =
new ArrayList
<String
>();
roles.
add("admin");
roles.
add("all");
List
<Announcement
> as =
new AnnouncementDaoImpl
().
findAnnouncements(5,roles
);
for(Announcement a : as
)
{
1.5.0/docs/api/java/lang/System.html">System.
out.
println(a.
getSaveDate() +
":" + a.
getTitle() +
" " + a.
getOwner().
getName() );
}
AbstractDao.
getCurrentSession().
beginTransaction().
commit();
}
}