使用实体查询时,是否一定要建立一个实体的hibernate的映射文件?
[b]问题补充:[/b]
除了加入
@Entity
@Table(name="***"),之外,还需要在配置文件中做什么配置吗,
我使用spring+hibernate,如果有对应的实体映射文件就可以查处数据来,否则就提示我 UserDefModel is not mapped
hibernate实体查询问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- wanghaolovezlq 2009-07-11 14:04关注
以前编写实体类Entity的时候,都需要配置映射文件.hbm.xml,同时需要在sessionFactory中配置映射文件或映射目录
使用annotation时需要将sessionFactory定义为:
【Entity】
文件映射
...hbm.xml
....或者 目录映射
classpath:/../hbm/
....现在可以使用Annotation来简化配置(jdk5 spring2.5 hibernate3.3)
在sessionFactory中配置
然后在Entity中定义类名的地方注释:@MappedSuperclass就可以自动完成载入,不用再配置.【service】
以前编写service时要先编写Entity,Dao然后进行Dao配置进行自动注入Service
class="com.gzpost.cps.dao.hibernate.MailDaoHibernate">
class="com.gzpost.cps.service.impl.MailSearchServiceImpl">
当然也可以在Spring配置中申明按名或按类自动注入,可以少配置属性,但是Bean还是要配置的现在可以使用SpringSide的SimpleHibernateTemplate范型Dao,直接在Service层创建,同时Service采用@Service注释来自动注册服务,在要注入参数的地方注释:@Autowired,就可以自动注入参数,前提是必须在Spring中配置
这样就搞定了,可以减少好多的配置
【transaction】
在服务类定义处注释:@Transactional,还可以在具体方法出定义@Transactional(readOnly=true)//使用readOnly可以提高性能
同一个方法里,事务可以传递,可以解决Lazy问题,可以不再使用:openSessionInView,使用此切面(aspect),必须在 实现 类(和/或类里的方法)、而不是类的任何所实现的接口上面进行注解
例如:
@Transactional
public class UserManagerInCatche {
@Transactional(readOnly=true)//使用readOnly可以提高性能
public void initResourceCache() {
if (!cacheInitialized) {
synchronized (this) {
List resources = userManager.getAllResorece();
for (Resource resource : resources) {
resourceDetailsInCache(resource);//resourceDetailsInCache方法会使用initResourceCache方法的事务
}
cacheInitialized = true;
}
}
}
private void resourceDetailsInCache(
Resource resource) {
// GrantedAuthority[] authorities = role2authorities(userManager.getRolesByResourceId(resource.getId()));
GrantedAuthority[] authorities = role2authorities(resource.getRoles());ResourceDetails rd = new gzpost.security.resourcedetails.Resource(resource .getResString(), resource.getResType(), authorities); resourceCache.putAuthorityInCache(rd); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 一道python难题
- ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
- ¥15 牛顿斯科特系数表表示
- ¥15 arduino 步进电机
- ¥20 程序进入HardFault_Handler
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度