It seems there is an issue mapping many to many relation like:
@Entity
public class Item {
....
@ManyToMany(targetEntity = Category.class, fetch = FetchType.LAZY, cascade = {CascadeType.REFRESH})
@JoinTable(name = "itemCategory",
joinColumns = {@JoinColumn(name = "itemId", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "categoryId", referencedColumnName = "id")})
private List<Category> categories = new ArrayList<Category>();
....
}
and
@Entity
public class Category {
...
@ManyToMany(targetEntity = Item.class, fetch = FetchType.LAZY, cascade = {CascadeType.REFRESH})
@JoinTable(name = "itemCategory",
joinColumns = {@JoinColumn(name = "categoryId", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "itemId", referencedColumnName = "id")})
private List<Item> items = new ArrayList<Item>();
...
}
What I believe is completely legal usage case, is causing something like this:
...
Caused by: org.batoo.jpa.parser.MappingException: Duplicate table names JoinTable[itemCategory class entities.Item.categories], JoinTable[itemCategory class entities.Category.items]
at org.batoo.jpa.core.impl.model.MetamodelImpl.checkTables(MetamodelImpl.java:379)
at org.batoo.jpa.core.impl.manager.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:157)
at org.batoo.jpa.core.impl.manager.JtaEntityManagerFactoryImpl.<init>(JtaEntityManagerFactoryImpl.java:80)
at org.batoo.jpa.core.BatooPersistenceProvider.createContainerEntityManagerFactory(BatooPersistenceProvider.java:72)
at org.batoo.jpa.core.BatooPersistenceProvider.createContainerEntityManagerFactory(BatooPersistenceProvider.java:44)
...
It seems there is an issue mapping many to many relation like:
and
What I believe is completely legal usage case, is causing something like this: