Uygulamamda JPA ek açıklamaları ile açıklanmış birkaç varlık POJO var. Ayrıca hbm2ddl, bu varlıklar için tablo oluşturmak üzere yapılandırılmıştır. Uygulama ilk kez başladığında, tüm tablolar bir tane dışında başarıyla oluşturulur. İşte varlık kaynak kod:Tablo, hibernate's hbm2ddl tarafından oluşturulmamış
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "REQUESTS")
public class InterpreterRequest implements java.io.Serializable {
private static final long serialVersionUID = -1017432073323298138L;
@Id
@GeneratedValue
private long id;
@Column(name = "quantity")
private int quantity;
@Column(name = "from")
private String from;
@Column(name = "to")
private String to;
@Column(name = "spec")
private String spec;
@ManyToOne(targetEntity = Event.class)
private Event event;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getQuantity() {
return quantity;
}
public void setQuantity(int quantity) {
this.quantity = quantity;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
}
public Event getEvent() {
return event;
}
public void setEvent(Event event) {
this.event = event;
}
}
Ve burada hazırda oturum fabrika yapılandırma aşağıdaki gibidir:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
<prop key="hibernate.connection.pool_size">5</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<!-- <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.hibernate.cache.use_query_cache">true</prop> -->
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.ceonline.inter.shared.model.User</value>
...
<value>com.ceonline.inter.shared.model.InterpreterRequest</value>
</list>
</property>
</bean>
Ne tabloları oluşturulurken InterpreterRequest sınıfını atlamak için hbm2ddl için bir neden olabilir?
Çok teşekkürler! Sorun gerçekten de 'from' ayrılmış sözcüktür. –
Evet, kendimle benzer bir sorun yaşadım. Altta yatan DBMS ve hazırda bekletme modları tarafından uygulanmayan bazı ifadeler kullanıldı. Özellikle bir yerde bir istisna varsayalım veya en azından hata günlüğe kaydedilir. Aslında şunu söyleyebilirim ki, bunu bir yerde belirtebilir/görebilirsin, sadece nerede olduğu hakkında hiçbir fikrin yok. – Voo