Suppose class A and B, and B extends A, and an object with key 1 is an instance of Class B.
Now we load (A, 1), the SQLStatementLoad.executeStatement method will be executed twice, and the select statement will be executed twice, too. Because A is the superclass, then in the first execution, the concrete class is determined, and in the second execution, the entity are loaded and molded.
If we load (B, 1), the SQLStatementLoad.executeStatement will execute once.
I think the second execution will not be so necessary, it may be a performance problem. We should eliminate the second execution.