Hibernate 冬眠不';t向hbm2ddl上的表添加新列。auto=";更新;

Hibernate 冬眠不';t向hbm2ddl上的表添加新列。auto=";更新;,hibernate,hql,Hibernate,Hql,亲爱的 我有多个表,需要在每个表中添加额外的列,我添加了它们实体类,但hibernate仍然没有创建它们,我甚至尝试在hql查询中使用添加的列,但它给出了一个错误,即属性不存在 #{obj.active} 我要添加的列: @Column (name = "CREATED_BY") private String createdBy; private String active; 我检索到一个对象并试图打印active的值。它说这种财产不存在 #{obj.active} 您尚

亲爱的

我有多个表,需要在每个表中添加额外的列,我添加了它们实体类,但hibernate仍然没有创建它们,我甚至尝试在hql查询中使用添加的列,但它给出了一个错误,即属性不存在

#{obj.active}
我要添加的列:

@Column (name = "CREATED_BY")
    private String createdBy;

    private String active;
我检索到一个对象并试图打印active的值。它说这种财产不存在

#{obj.active}

您尚未将hibernate属性添加到活动变量

@列(name=“active”)

私有字符串活动

代码des 它击中了我。您是否碰巧忘记了新字段的
设置器
?如果是这种情况,请尝试为字段添加setter(也可以是
getter
)。如果不希望其他业务逻辑更改字段,请将这些
设置为私有。

另外,您提到您正在使用Hibernate 3,并且没有
@CreationTimeStamp
(我没有时间检查这是否正确),那么我想知道为什么您在使用不存在的注释时没有得到编译错误???

已经得到了回答,请参考此链接:@srinivas不是,您提供的链接说有“更新”可以解决问题,但事实并非如此。我的意思是我有“更新”,但列仍然没有更新added@Codedes您能给我们展示实体类本身的注释吗?我的意思是像@TableHei这样的注释,你找到解决方案了吗?:)我认为您不需要在那里添加注释
@Column
只有在您想要更改默认设置(例如列名和长度)时才需要注释。您好..Isaac_Zhu,但是hibernate/jpa如何在没有@Column注释的情况下映射/创建数据库中的活动列。因此,它会给出错误(属性不存在)。在数据库中找不到列(活动)。JPA(Java Pesistence API,Hibernate实现JPA)将根据字段名称和类型为每个字段创建表列的默认定义,除非该字段显式标记为@Transient。在这种情况下,它将与放置@Column(name=“active”)相同。@Isaac_Zhu JPA是否是creationtimestamp注释不起作用的原因?@Codedes您是否提出了不同的要求?您介意发布一个更完整的实体版本吗
@CreationTimestamp
如果配置正确,也可以为相应字段设置
Updateable=false
,这样就不会意外地更新它。