If the same inconsistency happens with normal ID (which I haven't tested) then I would consider that an error as well. Returning null is an expected and documented behavior when trying to load an entity with natural ID or normal ID when that entity does not exist. The fact that 2nd level cache happens to be activated should not matter. The exception could very well be thrown from the second level cache, but the method that I as an application developer uses should either be documented to cover this inconsistency or return null if the entity doesn't exist. The application might not know that the ID it's trying to load an extended entity with belongs to an non-extended one. The extended entity does not exist with the natural ID, even if the 2nd level cache might contain a non-extended entity with that same ID. |