/*
* $Id: SchoolClassMemberGradeBMPBean.java,v 1.2.2.1 2005/11/18 17:29:45 palli Exp $
* Created on Jun 20, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package com.idega.block.school.data;
import java.sql.Timestamp;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.data.GenericEntity;
import com.idega.data.IDOQuery;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
/**
* Last modified: $Date: 2005/11/18 17:29:45 $ by $Author: palli $
*
* @author <a href="mailto:laddi@idega.com">laddi</a>
* @version $Revision: 1.2.2.1 $
*/
public class SchoolClassMemberGradeBMPBean extends GenericEntity implements SchoolClassMemberGrade{
private static final String ENTITY_NAME = "sch_class_member_grade";
private static final String COLUMN_SCHOOL_CLASS_MEMBER = "sch_class_member_id";
private static final String COLUMN_GRADE = "sch_grade_id";
private static final String COLUMN_CREATED = "created";
private static final String COLUMN_LOCKED = "locked";
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return ENTITY_NAME;
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(getIDColumnName());
addManyToOneRelationship(COLUMN_SCHOOL_CLASS_MEMBER, "Student", SchoolClassMember.class);
addManyToOneRelationship(COLUMN_GRADE, "Grade", Grade.class);
addAttribute(COLUMN_CREATED, "Created", Timestamp.class);
addAttribute(COLUMN_LOCKED, "Locked", Boolean.class);
}
//Getters
public SchoolClassMember getStudent() {
return (SchoolClassMember) getColumnValue(COLUMN_SCHOOL_CLASS_MEMBER);
}
public Object getStudentPK() {
return getIntegerColumnValue(COLUMN_SCHOOL_CLASS_MEMBER);
}
public Grade getGrade() {
return (Grade) getColumnValue(COLUMN_GRADE);
}
public Object getGradePK() {
return getIntegerColumnValue(COLUMN_GRADE);
}
public Timestamp getCreated() {
return getTimestampColumnValue(COLUMN_CREATED);
}
public boolean isLocked() {
return getBooleanColumnValue(COLUMN_LOCKED, false);
}
//Setters
public void setStudent(SchoolClassMember member) {
setColumn(COLUMN_SCHOOL_CLASS_MEMBER, member);
}
public void setGrade(Grade grade) {
setColumn(COLUMN_GRADE, grade);
}
public void setCreated(Timestamp created) {
setColumn(COLUMN_CREATED, created);
}
public void setLocked(boolean locked) {
setColumn(COLUMN_LOCKED, locked);
}
//Finders
public Collection ejbFindAllByStudent(SchoolClassMember student) throws FinderException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(table, getIDColumnName(), true);
query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL_CLASS_MEMBER, MatchCriteria.EQUALS, student));
query.addOrder(table, COLUMN_CREATED, false);
return idoFindPKsByQuery(query);
}
public Object ejbFindByStudent(SchoolClassMember student) throws FinderException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(table, getIDColumnName());
query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL_CLASS_MEMBER, MatchCriteria.EQUALS, student));
query.addOrder(table, COLUMN_CREATED, false);
return idoFindOnePKByQuery(query);
}
public Object ejbFindFirstGradeSetForStudent(SchoolClassMember student) throws FinderException {
//select * from sch_class_member_grade g
//where g.sch_class_member_grade_id in (
//select min(g2.sch_class_member_grade_id) from sch_class_member_grade g2 where g2.sch_class_member_id = m.sch_class_member_id))
IDOQuery subquery = idoQuery();
subquery.appendSelect();
subquery.append("min(g2.sch_class_member_grade_id)");
subquery.appendFrom("sch_class_member_grade g2");
subquery.appendWhereEquals("g2.sch_class_member_id", student);
IDOQuery query = idoQuery();
query.appendSelectAllFrom(this).append(" g");
query.appendWhere();
query.append("g." + getIDColumnName());
query.appendIn(subquery);
System.out.println("sql = " + query.toString());
return idoFindOnePKByQuery(query);
}
}