为国读书 2012-03-29 21:39 采纳率: 33.3%
浏览 395
已采纳

hibernate取不到某个字段的值

 

之前问过了这个问题没能解决,再发一遍,真心求帮助!!!!!!!!!!!!!!!!

 

很简单的一个测试;用Speak s = (Speak)session.get(Speak.class, 1);得到Speak对象之后,s.getAttachmentFlag()竟然取不到值,确切的说是取到的值为"";真要我小命!

相关代码如下:

 

1、数据库中有speak表,speak表中有attachment_flag字段;

2、attachment_flag字段的getter和setter方法hibernate自动生成的,应该没问题;

3、数据库的配置<mapping resource="com/shaiyaya/dao/Speak.hbm.xml" /> 应该也没问题;

4、测试语句:

 

Session session = HibernateSessionFactory.getSession();  
Transaction tran = session.beginTransaction();  
  
Speak s = (Speak)session.get(Speak.class, 1);  
System.out.println("at:"+s.getAttachmentFlag());  
tran.commit();  
session.close();  
return "success"; 

 其它字段的值都能取到, 但就是取不到attachment_flag字段的值;前几天还是好的啊!为什么?为什么?为什么?

 

speak.hbm.xml里面attachmentFlag字段的配置 

 

<property name="attachmentFlag" type="java.lang.String">  
         <column name="attachment_flag" length="20"></column>  
</property>

 其他字段都是能取出值来的,就是这个字段取不出值;并且我用session.update()方法的时候,不管传什么值,这个字段都是变成"";而其它字段都更新了的。

speak表的DDL:

 

-- Table "speak" DDL  
  
CREATE TABLE `speak` (  
  `speak_id` int(11) NOT NULL auto_increment,  
  `user_id` int(11) default NULL,  
  `content` mediumtext,  
  `create_time` timestamp NULL default NULL on update CURRENT_TIMESTAMP,  
  `last_comm_time` timestamp NULL default NULL COMMENT '后评论最时间',  
  `cate_flag` varchar(50) default NULL COMMENT 'twitter,style,topic',  
  `x_id` int(11) default NULL COMMENT '现表示的是forum的id,先也表示求购分类的id',  
  `attachment_flag` varchar(20) default '0' ,  
  `comment_sum` int(11) default '0' COMMENT '应相的speak被评论的次数',  
  `love_sum` int(11) default '0' COMMENT '对应的speak被喜欢的次数',  
  `forward_sum` int(11) default '0' COMMENT '对应的speak被转发的次数',  
  PRIMARY KEY  (`speak_id`),  
  KEY `user_id` (`user_id`),  
  KEY `love_sum` (`love_sum`),  
  KEY `cate_flag` (`cate_flag`),  
  KEY `attachment_flag` (`attachment_flag`),  
  CONSTRAINT `speak_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE  
) ENGINE=InnoDB DEFAULT CHARSET=gbk;  

 speak.java 

 

package com.shaiyaya.dao;  
  
import java.util.Date;  
/** 
 * Speak entity. 
 *  
 * @author MyEclipse Persistence Tools 
 */  
  
public class Speak implements java.io.Serializable {  
  
    // Fields  
  
    private Integer speakId;  
    private User user;  
    private String content;  
    private Date createTime;  
    private Date lastCommTime;  
    private String cateFlag;  
    private Integer XId;  
    private String attachmentFlag;  
    private Integer commentSum;  
    private Integer loveSum;  
    private Integer forwardSum;  
  
    // Constructors  
  
    /** default constructor */  
    public Speak() {  
    }  
  
    /** full constructor */  
    public Speak(User user, String content, Date createTime, Date lastCommTime,  
            String cateFlag, Integer XId, String attachmentFlag,  
            Integer commentSum, Integer loveSum, Integer forwardSum) {  
        this.user = user;  
        this.content = content;  
        this.createTime = createTime;  
        this.lastCommTime = lastCommTime;  
        this.cateFlag = cateFlag;  
        this.XId = XId;  
        this.attachmentFlag = attachmentFlag;  
        this.commentSum = commentSum;  
        this.loveSum = loveSum;  
        this.forwardSum = forwardSum;  
    }  
  
    // Property accessors  
  
    public Integer getSpeakId() {  
        return this.speakId;  
    }  
  
    public void setSpeakId(Integer speakId) {  
        this.speakId = speakId;  
    }  
  
    public User getUser() {  
        return this.user;  
    }  
  
    public void setUser(User user) {  
        this.user = user;  
    }  
  
    public String getContent() {  
        return this.content;  
    }  
  
    public void setContent(String content) {  
        this.content = content;  
    }  
  
    public Date getCreateTime() {  
        return this.createTime;  
    }  
  
    public void setCreateTime(Date createTime) {  
        this.createTime = createTime;  
    }  
  
    public Date getLastCommTime() {  
        return this.lastCommTime;  
    }  
  
    public void setLastCommTime(Date lastCommTime) {  
        this.lastCommTime = lastCommTime;  
    }  
  
    public String getCateFlag() {  
        return this.cateFlag;  
    }  
  
    public void setCateFlag(String cateFlag) {  
        this.cateFlag = cateFlag;  
    }  
  
    public Integer getXId() {  
        return this.XId;  
    }  
  
    public void setXId(Integer XId) {  
        this.XId = XId;  
    }  
  
    public String getAttachmentFlag() {  
        return this.attachmentFlag;  
    }  
  
    public void setAttachmentFlag(String attachmentFlag) {  
        this.attachmentFlag = attachmentFlag;  
    }  
  
    public Integer getCommentSum() {  
        return this.commentSum;  
    }  
  
    public void setCommentSum(Integer commentSum) {  
        this.commentSum = commentSum;  
    }  
  
    public Integer getLoveSum() {  
        return this.loveSum;  
    }  
  
    public void setLoveSum(Integer loveSum) {  
        this.loveSum = loveSum;  
    }  
  
    public Integer getForwardSum() {  
        return this.forwardSum;  
    }  
  
    public void setForwardSum(Integer forwardSum) {  
        this.forwardSum = forwardSum;  
    }  

 

 

  • 写回答

3条回答 默认 最新

  • titanseason 2012-03-31 12:14
    关注

    说实话,我也找不到问题了,你把 KEY attachment_flag (attachment_flag),这个也删掉试试,记住重新建表一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况