@Column(s) not allowed on a @ManyToOne property @Column(s) not allowed on a @ManyToOne property java java

@Column(s) not allowed on a @ManyToOne property


Use @JoinColumn instead of @Column:

@ManyToOne@JoinColumn(name="LicenseeFK")private Licensee licensee;


Using @JoinColumn and @Column together will result in the same error.Change it to only use: @JoinColumn to fix it.


@Column

The JPA @Column annotation is for basic entity attributes, like String, Integer, Date.

So, if the entity attribute name differs from the underlying column name, then you need to use the @Column annotation to specify the column name explicitly, like this:

@Column(name="created_on")private LocalDate createdOn;

@JoinColumn

The @JoinColumn annotation is used to customize a Foreign Key column name, and it can only be used with an entity association.

So, in your case, because you are using a @ManyToOne association, you need to use @JoinColumn:

@ManyToOne(fetch=FetchTYpe.LAZY)@JoinColumn(name="LicenseeFK")private Licensee licensee;

Notice that we set the fetch attribute to FetchType.LAZY because, by default, FetchType.EAGER is used, and that's a terrible strategy.