为什么我的ssh框架用get方法查询出来的数据出id外,其他的数据都是null
这是我的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,但是还是没有结果,哪位大哥帮帮我,看看是哪里的问题!

这是我的事物管理配置

这是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,但是还是没有结果,哪位大哥帮帮我,看看是哪里的问题!
...全文
相关推荐
ssh 框架整合总结
ssh 框架 整合 总结 优点 缺点 以及ssh mvc 和三层架构的概述。
基于SSH框架的百货中心供应链管理系统设计与实现详解
进销存管理是企业信息化的基础环节,百货中心供应链管理系统正是围绕采购、入库、销售、出库、库存与供应商结算这条核心链路展开的数字化解决方案。在JavaEE技术体系中,SSH框架(Struts2+Spring+Hibernate)作为经典轻量级组合,通过分层架构实现Web层、业务层与持久层的解耦,其中Hibernate负责对象关系映射与数据持久化,Spring统一管理事务与依赖注入,Struts2处理请求流转与页面跳转。这种结构清晰、职责分明的设计模式,既适合教学理解,也能支撑中小规模业务场景。本文从数据库设计
javaEE+SSH+MySQL百货供应链系统:从设计到部署全解析
在Java Web开发中,SSH框架(Struts2+Spring+Hibernate)是经典的技术组合,它清晰划分了请求控制、业务事务与数据持久化的职责。供应链管理系统作为企业信息化的重要场景,涉及采购、入库、销售、库存等复杂数据流转,恰好适合用来理解框架整合与数据库设计的核心原理。通过MySQL存储业务数据,Hibernate实现ORM映射,Spring管理事务,Struts2负责页面控制,能构建出结构分明、可维护的Web应用。本文基于一套javaEE+SSH+MySQL的百货中心供应链管理系统,从需求
SSH框架开发起步的最好例子.doc
SSH框架开发起步的最好例子 ssh java sql
SSH框架,详细版!
Spring 框架、Struts 框架、Hibernate 框架三大框架的工作原理及流程


Web 开发
