Hi,
this is my current method
Code:
public List getFoodProvidersOld(long block,long foodCategory,Boolean isDelivery,Boolean isRestaurant,Boolean isCatering,int pageStart,int pageSize) throws DAOException
{
Session session = HibernateUtil.currentSession();
try
{
Criteria cr=session.createCriteria(hr.klopa.domain.FoodProvider.class);
cr.add( Expression.eq("active",Boolean.TRUE) );
if(isDelivery!=null)
{
cr.add( Expression.eq("delivery",isDelivery) );
}
if(isRestaurant!=null)
{
cr.add( Expression.eq("restaurant",isRestaurant ) );
}
if(isCatering!=null)
{
cr.add( Expression.eq("catering",isCatering ) );
}
if(block>0)
{
cr.createCriteria("blocks").add( Restrictions.eq("id",block ) );
}
if(foodCategory>0)
{
FoodCategory fc = new FoodCategory();
fc.setId(foodCategory);
cr.createCriteria("menuGroups").add( Restrictions.eq("foodCategory",fc ) );
}
cr.addOrder(Order.asc("name"));
cr.setFirstResult(pageStart);
cr.setMaxResults(pageSize);
List list = cr.list();
return list;
}
catch (HibernateException e)
{
throw e;
}
finally
{
try{HibernateUtil.closeSession(session);}catch (Exception e){}
}
}
and this is the mapping of FoodProvider:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="true">
<class name="hr.klopa.domain.FoodProvider" table="k_foodprovider">
<id name="id">
<column name="k_id" not-null="true" />
<generator class="native" />
</id>
<property name="name">
<column name="k_name" length="255" not-null="false"/>
</property>
<property name="street">
<column name="k_street" length="255" not-null="false"/>
</property>
<property name="workHours">
<column name="k_workHours" length="255" not-null="false"/>
</property>
<property name="owner">
<column name="k_owner" length="255" not-null="false"/>
</property>
<property name="telephoneForOrders">
<column name="k_telephoneForOrders" length="255" not-null="false"/>
</property>
<property name="webAddress">
<column name="k_webAddress" length="255" not-null="false"/>
</property>
<set name="menuGroups" table="k_menugroup" cascade="all" order-by="k_id asc">
<key column="k_foodprovider"/>
<one-to-many class="hr.klopa.domain.MenuGroup"/>
</set>
<set name="images" table="k_image" cascade="all" order-by="k_id asc">
<key column="k_foodprovider"/>
<one-to-many class="hr.klopa.domain.Image"/>
</set>
<set name="blocks" table="k_foodprovider_blocks">
<key column="k_foodprovider"/>
<many-to-many class="hr.klopa.domain.Block" column="k_block"/>
</set>
<property name="delivery">
<column name="k_isdelivery" sql-type="int"/>
</property>
<property name="restaurant">
<column name="k_isrestaurant" sql-type="int"/>
</property>
<property name="catering">
<column name="k_iscatering" sql-type="int"/>
</property>
<property name="active">
<column name="k_isactive" sql-type="int"/>
</property>
<property name="grade">
<column name="k_grade"/>
</property>
<property name="note">
<column name="k_note" length="1000" not-null="false"/>
</property>
</class>
</hibernate-mapping>
and for MenuGroup
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="true">
<class name="hr.klopa.domain.MenuGroup" table="k_menugroup">
<id name="id">
<column name="k_id" not-null="true" />
<generator class="native" />
</id>
<property name="title">
<column name="k_title" length="255" not-null="false"/>
</property>
<property name="note">
<column name="k_note" length="1000" not-null="false"/>
</property>
<many-to-one name="foodCategory" column="k_foodcategory" class="hr.klopa.domain.FoodCategory" not-null="true"/>
<set name="foodItems" table="k_fooditems" cascade="all" order-by="k_id asc">
<key column="k_menugroup"/>
<one-to-many class="hr.klopa.domain.FoodItem"/>
</set>
<many-to-one name="foodProvider" column="k_foodprovider" class="hr.klopa.domain.FoodProvider" not-null="false"/>
<property name="number">
<column name="k_number" not-null="false"/>
</property>
<property name="priceTitle">
<column name="k_pricetitle" length="255" not-null="false"/>
</property>
<property name="price2Title">
<column name="k_price2title" length="255" not-null="false"/>
</property>
<property name="price3Title">
<column name="k_price3title" length="255" not-null="false"/>
</property>
</class>
</hibernate-mapping>