为什么JPA \ Hibernate不会自动创建此映射字段?

时间:2015-06-24 15:32:07

标签: java hibernate java-ee jpa hibernate-mapping

我正在开发一个使用JPA \ Hibernate的Java Web应用程序,我并不喜欢这项技术。

所以我遇到了以下问题:我有一个名为 ReaDichiarazioneIntento 模型类,它被映射到名为 REA_DICHIARAZIONE_INTENTO 的数据库表。

这样的事情:

@javax.persistence.IdClass(it.enel.wearea.entity.ReaDichiarazioneIntentoPK.class)
@javax.persistence.Table(name = "REA_DICHIARAZIONE_INTENTO", schema = "EDIWEA")
@Entity
public class ReaDichiarazioneIntento implements Cloneable {

    private Integer idDichiarazione;

    @javax.persistence.Column(name = "ID_DICHIARAZIONE")
    @Id
    public Integer getIdDichiarazione() {
        return idDichiarazione;
    }

    public void setIdDichiarazione(Integer idDichiarazione) {
        this.idDichiarazione = idDichiarazione;
    }
    ...................................................................
    ...................................................................
    ...................................................................
    SOME OTHER FIELDS AND RELATED GETTER AND SETTER METHODS
    ...................................................................
    ...................................................................
    ...................................................................

}

我的老板告诉我,我必须在这个表中添加并映射一个新字段,所以我添加了这个字段(将它和相关的getter和setter方法添加到上一个类中),将此代码添加到上一个类:

private Date dataTrasmissioneAde;

@javax.persistence.Column(name = "DATA_TRASMISSIONE_ADE")
@Basic
public Date getDataTrasmissioneAde() {
    return dataTrasmissioneAde;
}

public void setDataTrasmissioneAde(Date dataTrasmissioneAde) {
    this.dataTrasmissioneAde = dataTrasmissioneAde;
}

他告诉我,重新启动应用程序服务器,Hibernate会自动在我的表中创建这个字段。

我没有收到任何错误,但查看我的表格,我找不到 DATA_TRASMISSIONE_ADE 列。

为什么JPA \ Hibernate在我将其映射到我的模型类之后没有自动创建此列?可能是什么问题呢?我错过了什么?

TNX

1 个答案:

答案 0 :(得分:2)

你可以发布你的persistence.xml吗?

它应该包括这样的东西

property name =" javax.persistence.schema-generation.database.action"值="创建"

           

           

或删除并创建,但如果删除所有表,则会丢失所有数据 您还可以使用@Temporal anotation更好地映射到日期字段的数据库