Hello all, I am logging the LQC behaviour and found that size() method is called many times.
Here you have the code I used for the BeanQuery:
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()
{
System.err.println("*** constructBean");
return new User(-1);
}
protected List<User> loadBeans(int startIndex, int count)
{
System.err.println("*** loadBeans(" + startIndex + ", " + count + ")");
Set<User> result = dao.findAll(User.class, startIndex, count);
return new ArrayList<User>(result);
}
protected void saveBeans(List<User> addedTasks, List<User> modifiedTasks,
List<User> removedTasks)
{
System.err.println("*** saveBeans");
}
public int size()
{
int result = (int)dao.count(User.class);
System.err.println("*** size() = " + result);
return result;
}
}
And the code for Table:
public class UserTable extends Table
{
private static final long serialVersionUID = -8877945668449793082L;
private static final Object[] ORDER = { "userId", "name", "surname", "email", "street", "streetNumber", "city", "postalCode", "state", "country" };
private static final String[] HEADERS = { "ID", "Surname", "First Name", "Email", "Street", "N", "City", "Code", "State", "Country" };
public UserTable()
{
setSizeFull();
BeanQueryFactory<UserBeanQuery> factory = new BeanQueryFactory<UserBeanQuery>(UserBeanQuery.class);
LazyQueryDefinition definition = new LazyQueryDefinition(false, 30);
definition.addProperty("userId", String.class, new Integer(-1), true, true);
definition.addProperty("name", String.class, "", true, true);
definition.addProperty("surname", String.class, "", true, true);
definition.addProperty("email", String.class, "", true, true);
definition.addProperty("street", String.class, "", true, true);
definition.addProperty("streetNumber", String.class, "", true, true);
definition.addProperty("city", String.class, "", true, true);
definition.addProperty("postalCode", String.class, "", true, true);
definition.addProperty("state", String.class, "", true, true);
definition.addProperty("country", String.class, "", true, true);
LazyQueryContainer container = new LazyQueryContainer(definition, factory);
setContainerDataSource(container);
setVisibleColumns(ORDER);
setColumnHeaders(HEADERS);
}
}
The log is the following:
11:50:17,554 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,555 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,555 ERROR [stderr]
(http--192.168.100.11-8080-1) *** loadBeans(0, 30)
11:50:17,572 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,572 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,573 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,574 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,575 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,575 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,576 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,577 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,577 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,578 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,578 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,579 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,580 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,580 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,581 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,582 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,582 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,712 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,713 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,714 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,715 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,716 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,716 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,717 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,718 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,718 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,719 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,720 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,720 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,721 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,721 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,722 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,723 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,723 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,724 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,726 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,726 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,727 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,728 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,728 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,729 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,730 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,730 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,731 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,731 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,732 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,733 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,733 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,734 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,735 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,735 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,735 ERROR [stderr]
(http--192.168.100.11-8080-1) *** loadBeans(30, 30)
11:50:17,744 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,745 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,746 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,746 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,747 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,748 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,748 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,749 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,750 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,750 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,751 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,752 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,752 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,753 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,754 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,754 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,755 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,755 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,756 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,757 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,757 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,758 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,759 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,760 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,760 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,761 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,761 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,762 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,763 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,763 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,764 ERROR [stderr]
(http--192.168.100.11-8080-1) *** size() = 108
11:50:17,764 ERROR [stderr]
(http--192.168.100.11-8080-1) *** loadBeans(60, 30)
Is there somebody that can help me to understand why size() method is called so many times?
Thanks in advance for your help
jona