hibernate忽略了某个字段的问题

远方夕阳 2012-07-04 09:11:25
我的表有4个字段 :sequenceId,acccount, status,ip
对应的java对象也是这4个字段,

public class User {

private int sequenceId;
private String account;
private String status;
private String ip;
public int getSequenceId() {
return sequenceId;
}
public void setSequenceId(int sequenceId) {
this.sequenceId = sequenceId;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}




映射的user.hbm.xml里面配置也没有问题

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.test.model">
<class name="User" table="T_User" lazy="false">
<id name="sequenceId" type="java.lang.Integer" column="sequenceId">
<generator class="native" />
</id>
<property name="account" column="account" type="java.lang.String" />
<property name="status" column="status" type="ava.lang.String" />
<property name="ip" column="ip" type="java.lang.String" />
</class>
</hibernate-mapping>

入库时间的代码是:

getHibernateTemplate().save(user);

现在的问题是插入数据的时候 ip字段被忽略掉了,打印生成的sql如下:
Hibernate: insert into T_User (account, status) values (?, ?)
数据库用的是mysql,还有这个IP字段是alert table后面加上去的,
谁遇到过这种问题呀?
...全文
283 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
远方夕阳 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

hibernate.hbm2ddl.auto=update
确定是这个吗?
重新部署
清理缓存

引用:
还有这个IP字段是alert table后面加上去的,



这个是你写到domain的修改 还是自己去数据库手动去修改的?
可以试着删除该表在重试、
[/Quote]
我已经把表删除了,重新建了,还是不行
远方夕阳 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

有可能是HIBERNETE内部机制的问题吗?比如你写的ip被系统用做关键字什么的,你修改下名字,调整下配置文件中的位置,再试一下。
[/Quote]
忘记说了
还有这个情况是,在我本机没有这个问题,但是放到linux服务器上面去就会出现这个问题,本机使用的是本机数据库,服务器使用的是服务器的数据库,但是两个数据库的结构都完全一样
mishidezhu 2012-07-04
  • 打赏
  • 举报
回复
有可能是HIBERNETE内部机制的问题吗?比如你写的ip被系统用做关键字什么的,你修改下名字,调整下配置文件中的位置,再试一下。
  • 打赏
  • 举报
回复
hibernate.hbm2ddl.auto=update
确定是这个吗?
重新部署
清理缓存

引用:
还有这个IP字段是alert table后面加上去的,



这个是你写到domain的修改 还是自己去数据库手动去修改的?
可以试着删除该表在重试、
远方夕阳 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

如果加表字段加成功了,也做映射,是不会有问题的
[/Quote]
问题是 出来了这么个诡异的问题啊
远方夕阳 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

看一下数据库表里是否有IP字段,检查有没有alert成功。
看一下传入save方法的user对象,IP属性是否不为空。
重启服务再试试。
[/Quote]
数据库当然有 IP 这个字段,
对象打印了user的ip属性不为空
重启好几遍了
zuxianghuang 2012-07-04
  • 打赏
  • 举报
回复
如果加表字段加成功了,也做映射,是不会有问题的
brightyq 2012-07-04
  • 打赏
  • 举报
回复
看一下数据库表里是否有IP字段,检查有没有alert成功。
看一下传入save方法的user对象,IP属性是否不为空。
重启服务再试试。
宏Lee 2012-07-04
  • 打赏
  • 举报
回复
<generator class="native" />你的id是自动增长啊,你在数据库插入的时候一样的xie ID嘛,一样的道理

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧