を落としたときに私はこのようなエンティティクラスを持っている:Hibernateは不足している列の列
@Entity
@Table (name="CART_ITEM")
public class CartItem {
@Id
@GeneratedValue (strategy=GenerationType.AUTO)
@Column (name="ID")
private int id;
@Column (name="AMOUNT")
private int amount;
...
それはデータベースと正常に動作します。私は列の金額をドロップし、アプリケーションを(getterとsetterで)上記の対応するフィールドを削除して再起動したときにしかし、私はこれを取得:
Exception sending context initialized event to listener instance of class com.retailstore.AppContextListener
javax.persistence.PersistenceException: [PersistenceUnit: manager] Unable to build Hibernate SessionFactory
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.persistenceException(EntityManagerFactoryBuilderImpl.java:954)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:882)
at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:58)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
at com.retailstore.AppContextListener.createEntityManagerFactory(AppContextListener.java:76)
at com.retailstore.AppContextListener.contextInitialized(AppContextListener.java:66)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1407)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1397)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing column [AMOUNT] in table [CART_ITEM]
at org.hibernate.tool.schema.internal.SchemaValidatorImpl.validateTable(SchemaValidatorImpl.java:85)
at org.hibernate.tool.schema.internal.SchemaValidatorImpl.doValidation(SchemaValidatorImpl.java:50)
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:91)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:473)
at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:444)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:879)
... 14 more
私はこの前に何度も行っているし、この問題に遭遇したことがありません。誰か提案はありますか?
更新日:
私は問題が解決したと思います。 WEB-INF/classesの下にはまだ古いクラスがあります。
Hmm。フィールドを削除してからプロジェクトを再構築しましたか? – tsolakp
ええ、再構築、再起動した日食、何か再起動があります.. – user2908112
解決策を見つけたら、自分の質問に答えることを検討してください。 –