@Basic shouldn't be used with [i]'private Products productId;'[/i] (see spec section 9.1.18 Basic Annotation for the valid use cases).
My guess is that @Basic gets processed while @ManyToOne is then ignored, together with the @JoinColumn, and as the result, the column name defaults to PRODUCTID.
Regards,
-marina
[Message sent by forum member 'mvatkina' (mvatkina)]
http://forums.java.net/jive/thread.jspa?messageID=294676