First of all you should not return a result as it is a connected result set.
After executing the query, you should populate the data into a value object and close the result set, statement and the connection as every connection object has a timeout associated with it.
If you don't want stale data, you should go for Serializable isolation level.
After getting the connection object change the isolation level and then go for fetching data. This can be done in Session bean also but one thing you should also understand, it will decrease the performance.
Serializable should be used if data integrity is on high priority then perfromance.