Could somebody explain C?
If the business logic is, say, in a well-written JavaBean which might already be used in another application, then you get reuse by having the session bean invoke the methods of the JavaBean. The JavaBean's methods will run in the session bean's transaction context.
And why is A not correct?
It would be an unjustified cost to use a complex solution for rarely used data. All that is needed is
JDBC calls from a session bean.