I cannot see the total problem - that would be more work than they pay me for - but I did notice 2 things:
1.
You should almost always wrap a Collection (List or Array) that is being used as a table model object inside a
JSF DataModel object and use that object as the dataTable's value.
2. The "get" method is going to be invoked multiple times (often 5 times or more), so doing a database fetch within the "get" or its sub-routines is not only very expensive in terms of performance, but may actually return inconsistent data in the event that other processes are updating the database at the time.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.