@Column
La APP @Column
anotació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 @Column
anotación para especificar el nombre de la columna explícitamente, de esta manera:
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
La @JoinColumn
anotació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 @ManyToOne
asociación, debe usar @JoinColumn
:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
Tenga en cuenta que establecemos el fetch
atributo en FetchType.LAZY
porque, de forma predeterminada, FetchType.EAGER
se usa, y esa es una estrategia terrible. Para obtener más detalles sobre por qué FetchType.LAZY
es un valor predeterminado mucho mejor, consulte este artículo .