Well, you have a "consistent" exception:
org.hibernate.InstantiationException: No default constructor for entity: com.expt.hibernate.core.Student
Just add a default constructor on your Student entity (the JPA specification actually mandates a default constructor on mapped classes to make dynamic instantiation of the class possible by the JPA provider).
Update: (answering a comment from the OP)
yeah. i can add a default constructor and get it working but i just wanted JPA-Hibernate to tell me in the very first go not in the second run. Also, i don't really the theme behind it giving the exception during the second run and not in the first run
Honestly, I can't say why it works the first time with JPA/Hibernate and fails directly with Hibernate core (well, obviously, JPA/Hibernate didn't use dynamic instantiation on the first run but I don't know why and, actually, you skipped the interesting parts of the stacktrace :) Anyway, Hibernate and the JPA spec don't mandate exceptions to be thrown at the same time, they mandate you to provide a default constructor on your entities and you didn't. So, I wouldn't spend too much time on on this little behavioral difference as this is an implementation detail. Just build to spec and voilà! And if really you want to know, you have the source code, you have a debugger. Just use them :)