Can we introduce ORM (hibernate ) layer when working with Legacy Database which is directly accessed by JDBC ? what are the complications to look for ?
Yes we can. Hibernate uses JDBC, so as far as the low level connection stuff is concerned there is no difference.The complications depend on the database. By "legacy" I infer poorly modelled. Hibernate is fairly strict when it comes to relational databases that are not actually relational (e.g. entities without primary keys) so there may need to be some compromises made. But Hibernate always allows you to run native SQL, so anything you can currently do on your legacy database in SQL you can carry on doing if you have to.