JPA/Hazırda Bekletme'yi yalnızca küçük harfli tablenames oluşturmak ve kullanmak için zorlamaya çalışıyorum. Böyle bir NamingStrategy uyguladık:"org.hibernate.DuplicateMappingException" hatası ne anlama geliyor?
Ben persistence.xml bu özelliğini ayarlayarak uyguladığımızıpublic class MyNamingStrategy extends DefaultNamingStrategy {
@Override
public String classToTableName(String className) {
return super.classToTableName(className).toLowerCase();
}
}
:
SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
org.hibernate.DuplicateMappingException: Same physical table name [planning] references several logical table names: [Planning], [OrderProductMan_Planning]
at org.hibernate.cfg.Configuration$MappingsImpl.addTableBinding(Configuration.java:2629)
at org.hibernate.cfg.annotations.TableBinder.buildAndFillTable(TableBinder.java:254)
at org.hibernate.cfg.annotations.TableBinder.bind(TableBinder.java:177)
: Bunu yaptığınızda
<property name="hibernate.ejb.naming_strategy" value="entities.strategy.MyNamingStrategy"/>
Bu stacktrace olsun
Aynı phy nedir? sical tablo adı [planning] birkaç mantıksal tablo ismi başvurur: [Planning], [OrderProductMan_Planning]
ne demek?
Hatasından gelen varlıklar, olabildiğince basitleştirilmiş. Gerisine ihtiyacın olursa haberim olsun.
@Entity
public class Planning implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private Integer qty;
@ManyToOne
private OrderProductMan orderProduct;
....
}
@Entity
@Table
public class OrderProductMan implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
private Integer opId;
@Basic(optional = false)
private int qty;
@ManyToOne(optional = false)
private ProductMan produse;
@ManyToOne(optional = false)
private OrderMan orders;
@Transient
private int totalScheduled;
@Transient
private int totalProduced;
// ...
}
Kurumunuzun eşlemeleri gibi biraz daha fazla bilgi verebilir misiniz? – Bozho
Sorumu güncelledim. Daha fazlasına ihtiyacın olursa haberim olsun. Teşekkürler! – Bogdan
Halihazırda var olan tabloları oluşturmaya çalışmadığınızdan emin misiniz? Mesaj: 'Aynı fiziksel tablo adı [planlama] birkaç mantıksal tablo ismine başvurur: [Planning]' bana büyük harf versiyonunun zaten orada olabileceğini ve daha az kasalı versiyonun oluşturulamayacağını düşünmemi sağlar. Çoğu DB motorunun büyük/küçük harfe duyarlı olmadığını unutmayın. –