@Entity
public class RelatedEntities
{
@ManyToOne( fetch = FetchType.LAZY )
@JoinColumn( name = "entity1__id", updatable = true, columnDefinition = "int(10)" , nullable = false )
private Entity1 entity1;
@ManyToOne( fetch = FetchType.LAZY )
@JoinColumn( name = "entity2__id", updatable = true, columnDefinition = "int(10)" , nullable = true )
private Entity2 entity2;
@ManyToOne( fetch = FetchType.LAZY )
@JoinColumn( name = "entity3__id", updatable = true, columnDefinition = "int(10)" , nullable = true )
private Entity3 entity3;
}
@Entity
public class Entity1
{
@OneToMany( mappedBy = "entity1", fetch = FetchType.LAZY )
@BatchSize( size = 1024 )
private Set<RelatedEntities> relatedEntities = new HashSet<>();
}
@Entity
public class Entity2
{
@OneToMany( mappedBy = "entity2", fetch = FetchType.LAZY )
@BatchSize( size = 1024 )
private Set<RelatedEntities> relatedEntities = new HashSet<>();
}
@Entity
public class Entity3
{
@OneToMany( mappedBy = "entity3", fetch = FetchType.LAZY )
@BatchSize( size = 1024 )
private Set<RelatedEntities> relatedEntities = new HashSet<>();
}