Annotating an application-scope bean as Singleton is redundant. By definition, there's only one instance of it per application.
The problem here is that although your property is only coded once and for a single user, its get method has side-effects.
JavaBeans in general and specifically
JSF backing beans should not have side-effects in their get/set methods. A get method for a property might be invoked 5 or 6 times in the course of a single request/response cycle.
The way around this is to back up the get/set methods by an actual instance variable (property item) and have the get/set methods set or retrieve that variable's value.
For a read-only property such as this one, the backing property variable can be initialized either in a @Postconstruct method or by coding the "get" method to employ the variable as a cached item. That is, on the first call, retrieve the value from the database and set the variable, on subsequent calls just return the variable.