@Column
La APP @Columnanotación es para los atributos básicos de la entidad, como String, Integer, Date.
Entonces, si el nombre del atributo de la entidad difiere del nombre de la columna subyacente, entonces debe usar la @Columnanotación para especificar el nombre de la columna explícitamente, de esta manera:
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
La @JoinColumnanotación se usa para personalizar un nombre de columna de clave externa y solo se puede usar con una asociación de entidad.
Entonces, en su caso, debido a que está utilizando una @ManyToOneasociación, debe usar @JoinColumn:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
Tenga en cuenta que establecemos el fetchatributo en FetchType.LAZYporque, de forma predeterminada, FetchType.EAGERse usa, y esa es una estrategia terrible. Para obtener más detalles sobre por qué FetchType.LAZYes un valor predeterminado mucho mejor, consulte este artículo .