equals() and hashCode() should be implemented using a business key – i.e. a set of properties that uniquely identify the object, but are not its auto-generated ID.
in toString() you can put whatever information is interesting – for example all fields.
Use your IDE (Eclipse, NetBeans, IntelliJ) to generate all these for you.
In order to avoid LazyInitializationException, no matter whether in equals() or in your view (jsp), you can use OpenSessionInView.