2014-09-10 5 views
0

У меня есть таблица productJob и таблица quadrat. Каждый квадрат может быть установлен на многих productJob, и каждый productJob может иметь от 1 до 4 quadrats таких же или разных видов! Мне интересно сохранить порядок установки квадратов на рабочих местах. Например, первое, второе, третье или четвертое место! Но следующее сопоставление не создает столбец порядка на JoinTable telai_quadrati. В чем проблема моего картографирования? Во всяком случае, OrderColumn не создается!Создание OrderColumn для отображения списка OneToMany в таблице соединений в Hibernate

@Entity 
@Table(name = "telai") 
public class ProductJob implements IProductJob, IProductJobProcessing{ 
    @Embedded private QuadratGroup quadrateGroup = new QuadratGroup(); 
} 

@Embeddable 
public class QuadratGroup implements Serializable{ 
    @OneToMany(targetEntity = Quadrat.class, cascade = CascadeType.ALL) 
    @JoinTable(
     name = "telai_quadrati", 
     joinColumns = {@JoinColumn(name = "dbId", table = "telai")}, 
     inverseJoinColumns = {@JoinColumn(name = "id", table = "quadrati")}) 
    //@OrderColumn(name = "order") 
    @IndexColumn(name = "order") 
    public List<Quadrat> getQuadratList(){ //return an ordered list of the quadrats with at most 4 elements} 

И понятно, что для квадратов не существует порядка, поэтому я использую set!

@Entity 
@Table(name = "quadrati") 
public class Quadrat implements IQuadrat, Cloneable, Serializable{ 
    @ManyToMany 
    @JoinTable(
     name = "telai_quadrati", 
     joinColumns = @JoinColumn(name = "id", table = "quadrati"), 
     inverseJoinColumns = @JoinColumn(name = "dbId", table = "telai")) 
    private Set<ProductJob> productJobs; 

ответ

0

Это работает, если я использую доступ к собственности, несмотря на доступ к методу доступа! Примерно так:

@OneToMany(targetEntity = Quadrat.class, cascade = CascadeType.ALL) 
//@MapKeyJoinColumn(name="indice" , table = "telai_quadrati") 
@JoinTable(
     name = "telai_quadrati", 
     joinColumns = {@JoinColumn(name = "telaio_id", table = "telai")}, 
     inverseJoinColumns = {@JoinColumn(name = "quadrato_id", table = "quadrati")}) 
@OrderColumn(name = "indice") 
private List<Quadrat> quadratList; 

Но мне интересно, почему он не работает с доступом к методу, который заставляет меня тяжелый рефактор в моем проекте! :(