AnnotationException: A Foreign key refering has the wrong number of column. should be 2
Your class CiudadPK
has two columns in it. You're only using @JoinColumn
which is limited to a single column. You need to use @JoinColumns
and list out both columns in the FK, e.g.
// bi-directional many-to-one association to Provincia
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "codProvincia", insertable = false, updatable = false),
@JoinColumn(name = "codRegion", insertable = false, updatable = false)
})
private Provincia provincia;
You'll likely have the other issue w/ Ciudad
as well, please follow the pattern here to correct that one.
As of Java 8 (introducing @Repeatable), the wrapper annotation @JoinColumns
is no longer required .
So, you can simply do this:
// bi-directional many-to-one association to Provincia
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name = "codProvincia", insertable = false, updatable = false)
@JoinColumn(name = "codRegion", insertable = false, updatable = false)
private Provincia provincia;
References:
Java 8's new Type Annotations
Repeating Annotations