为什么我的ssh框架用get方法查询出来的数据出id外,其他的数据都是null

jieranjiajia 2016-10-31 11:49:56
这是我的spring4集成hibernate5的配置


这是我的事物管理配置


这是baseDaoImpl类实现了baseDao接口

package com.skill.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository("baseDao")
public class BaseDaoImpl implements BaseDao
{

private SessionFactory sessionFactory;

@Autowired
public void setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}

public SessionFactory getSessionFactory()
{
return sessionFactory;
}

public Session getCurrentSession()
{
return getSessionFactory().getCurrentSession();
}

public <T> T getEntityBy(Class<T> T,Integer id)
{
return getCurrentSession().get(T, id);
}

userDaoImpl 继承了baseDaoImpl 实例userDao接口,userDao接口继承BaseDao接口
package com.skill.dao.userDao.impl;


import org.springframework.stereotype.Repository;

import com.skill.dao.BaseDaoImpl;
import com.skill.dao.userDao.UserDao;
import com.skill.model.User;

@Repository("userDao")
public class UserDaoImpl extends BaseDaoImpl implements UserDao
{
@Override
public User getUserBy(Integer id)
{
return super.getEntityBy(User.class, id);
}
}

userServiceImpl实现类调用userService
package com.skill.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.skill.dao.userDao.UserDao;
import com.skill.model.User;
import com.skill.service.UserService;

@Service("userService")
public class UserServiceImpl implements UserService
{
@Autowired
private UserDao userDao;
@Override
public User findUserBy(Integer id)
{
return userDao.getUserBy(id);
}
}

这个是写的测试方法
package com.skill.test;

import org.jboss.logging.Logger;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.skill.model.User;
import com.skill.service.UserService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring.xml"})
public class FunctionTest
{
private Logger logger = Logger.getLogger(FunctionTest.class);
@Autowired
UserService userService;
@Test
public void testJDBC()
{
User user = userService.findUserBy(2);
logger.info("查询结果是:id--->"+user.getId()+"\tname--->"+ user.getUserName());
}
}

然而实际的测试结果是这样的
INFO: 查询结果是:id--->2 name--->null

有ID却没有name,当我在事物中把readonly去掉时,hibernate会先差一遍接着马上就update了。
Hibernate:
select
user0_.ID as ID1_0_0_,
user0_.PASSWORD as PASSWORD2_0_0_,
user0_.USERNAME as USERNAME3_0_0_
from
USER_TB user0_
where
user0_.ID=?
Hibernate:
update
USER_TB
set
PASSWORD=?,
USERNAME=?
where
ID=?
在事物中加上readonly=true后
不会update,但是还是没有结果,哪位大哥帮帮我,看看是哪里的问题!
...全文
471 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
那年花 2017-01-03
  • 打赏
  • 举报
回复
model的字段跟数据库的不匹配问题把
zhr1026 2016-12-30
  • 打赏
  • 举报
回复
晓得了 ,mybatis映射文件里写了个resultmap里面的column字段跟数据库里的字段写错了
DJsodjosoiejoajfo 2016-11-01
  • 打赏
  • 举报
回复
数据库字段别名的问题 把你指定的别名和控制台输出的一样就好了
jieranjiajia 2016-11-01
  • 打赏
  • 举报
回复
数据库是有值的,不过查询的时候给update掉了,在显示的时候就没有值了,我是用的注解配置,没有用hbm配置文件
家里敷泥呀 2016-11-01
  • 打赏
  • 举报
回复
检查数据库,其他字段是否有值。
bcsflilong 2016-11-01
  • 打赏
  • 举报
回复
第一看看数据库中其他字段是不是有值 第二看看你的hbm文件 看看里面的加载方式配置的 是不是妥当

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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