Description
We encounter some log lines like:
Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once. Query='UPDATE mailboxCounters SET unseen=unseen-1 WHERE mailboxId=:mailboxId;' Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once. Query='UPDATE mailboxCounters SET count=count-1 WHERE mailboxId=:mailboxId;' Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once. Query='UPDATE mailboxCounters SET unseen=unseen+1 WHERE mailboxId=:mailboxId;' Re-preparing already prepared query is generally an anti-pattern and will likely affect performance. Consider preparing the statement only once. Query='INSERT INTO mailbox (id,name,uidvalidity,mailboxbase) VALUES (:id,:name,:uidvalidity,:mailboxbase);'
These DAOs are created every time they are injected by Guice, which leads to re-preparing queries.
We should rather bind them in scope singleton.