<p>Here are my current options. </p>

<ol>
<li>.Net : Using WPF, Visual C#, SQLServer</li>
<li>Java : Using Spring, Hibernate, Enterprise DB, web-based</li>
</ol>

<p>Can you suggest which one is better?, especially with regards to building complex forms.</p>

Wow, .NET vs. Java, can't wait to see how this turns out  ;-)
.NET might have the edge here with WPF and click-once deployment.  WPF is in its second version and is showing itself to be quite powerful and easy to use.  It provides excellent separation between logic and presentation (in XAML).  Personally, I would much prefer a Windows application to web deployment because the programming model is so much more powerful and versatile (and better suited for complex forms).
I won't try to represent the Java viewpoint here, but Windows forms development in Java does not have a great reputation.  Perhaps its unwarranted, I'd be interested to hear what Java programmers have to say. (UPDATE -- Swing is the technology I'm referring to here)
To some extent, this is a false choice, because those other technologies you list (Spring, Hibernate) are also available on the .NET stack (Spring.Net and NHibernate) and are quite mature.  Most popular Java open source technologies have been ported to the .NET stack.