Hibernate uses an association table to map the relationship, whilst the other table which is the many side does not not that any table exist. It will then create a mapper instead.
The documentation states that using @OneToMany and @ManyToMany you can map Collections, Lists, Maps and Sets of associated entities.
if you do not specify @joincolumn, this is as regards your question, a unidirectional one to many with join table is used. The table name is the concatenation of the owner table name, _, and the other side table name. The foreign key name(s) referencing the owner table is the concatenation of the owner table, _, and the owner primary key column(s) name.
So if you do not want to create a join table(mapper) using the one to many you may have to specify the @joinColumn.
@Entity
public class CompanyImpl {
@OneToMany
@JoinColumn(name=flights_id)
private Set<Flight> flights;
@Entity
public class Flight {