The @JoinColumn annotation specifies the name of the column being used as the foreign key on the targeted entity.
On the Product class above, the name of the join column is set to ID_CATALOG.
@ManyToOne
@JoinColumn(name="ID_CATALOG")
private Catalog catalog;
However, the foreign key on the Product table is called catalog_id
`catalog_id` int(11) DEFAULT NULL,
You’ll need to change either the column name on the table or the name you’re using in the @JoinColumn so that they match. See http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html/entity.html#entity-mapping-association