Hello all, I need your help to figure out how to use LQC.
I have a DAO to access objects stored in DB. I wrote the following to use LQC:
public class UserBeanQuery extends AbstractBeanQuery<User>
{
private DAO dao = DAOFactory.instance().createDAO();
public UserBeanQuery(QueryDefinition definition,
Map<String, Object> queryConfiguration, Object[] sortPropertyIds,
boolean[] sortStates)
{
super(definition, queryConfiguration, sortPropertyIds, sortStates);
}
protected User constructBean()
{ return new User(-1); }
protected List<User> loadBeans(int startIndex, int count)
{
Set<User> result = dao.findAll(User.class, startIndex, count);
return new ArrayList<User>(result);
}
@Override
protected void saveBeans(List<User> addedTasks, List<User> modifiedTasks,
List<User> removedTasks)
{}
@Override
public int size()
{ return (int)dao.count(User.class); }
}
And use it in the table:
public class UserTable extends Table
{
public UserTable()
{
BeanQueryFactory<UserBeanQuery> factory = new BeanQueryFactory<UserBeanQuery>(UserBeanQuery.class);
LazyQueryContainer container = new LazyQueryContainer(factory, false, 10);
setContainerDataSource(container);
}
}
In the log I can see that UserBeanQuery.size() method is called many times (once for each User entry).
Do you have any idea about this strange behaviour ?
Thanks in advance for your help
jona