Rev 391 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.domain.dao.impl;
import pt.estgp.estgweb.domain.*;
import static org.
hibernate.
criterion.
Restrictions.
*;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.exception.GenericJDBCException;
import org.hibernate.Criteria;
import org.hibernate.sql.JoinFragment;
import java.util.List;
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class TeacherDaoImpl
extends TeacherDao
{
private TeacherDaoImpl
(){}
// protected Class getReferenceClass() {
// return TeacherImpl.class;
// }
public static TeacherDaoImpl getInstance
()
{
if (myInstance ==
null)
myInstance =
new TeacherDaoImpl
();
return (TeacherDaoImpl
) myInstance
;
}
public Teacher loadBySigesCode
(int sigesCode
)
{
try
{
return (Teacher
) createCriteria
().
add(eq
("sigesCode",sigesCode
)).
uniqueResult();
}
catch(GenericJDBCException e
)
{
throw e
;
}
}
public List
<User
> loadByAreaWithUnitsInYear
(1.5.0/docs/api/java/lang/String.html">String area,
1.5.0/docs/api/java/lang/String.html">String year
)
{
try
{
Criteria c = createCriteria
();
c.
setResultTransformer(Criteria.
DISTINCT_ROOT_ENTITY);
if(area
!=
null && area.
trim().
length()>0)
c.
add(eq
("mainArea",area
));
c.
createAlias("teachedUnits",
"t", JoinFragment.
INNER_JOIN).
add(eq
("t.importYear",year
));
return c.
addOrder(Order.
asc("name")).
list();
}
catch(GenericJDBCException e
)
{
throw e
;
}
}
public Teacher loadByBi
(1.5.0/docs/api/java/lang/String.html">String bi
)
{
return (Teacher
) createCriteria
().
add(eq
("bi",bi
)).
uniqueResult();
}
public List
<Teacher
> findByEmail
(1.5.0/docs/api/java/lang/String.html">String email
)
{
return createCriteria
().
add(or
(or
(or
(eq
("email",email
),eq
("outEmail",email
)),eq
("gmail",email
)),eq
("msn",email
))).
addOrder(Order.
asc("name")).
list();
}
// Duarte Santos
public List
<Teacher
> loadByCourseUnit
(long courseUnitId
)
{
return createCriteria
()
.
createAlias("teachedUnits",
"tu")
.
add(eq
("tu.id", courseUnitId
))
.
list();
}
public long countTotalFromSubscribedUnits
(1.5.0/docs/api/java/lang/String.html">String importYear,
1.5.0/docs/api/java/lang/String.html">String semester
)
{
Criteria c = createCriteria
()
.
createAlias("teachedUnits",
"tu")
.
add(eq
("tu.importYear",importYear
))
.
add(eq
("tu.semestre",semester
))
.
setProjection(Projections.
projectionList()
.
add(Projections.
rowCount())
);
return ((1.5.0/docs/api/java/lang/Integer.html">Integer) c.
uniqueResult()).
longValue();
}
}