用户登录
用户注册

分享至

hibernate和springdata

  • 作者: 俠34747087
  • 来源: 51数据库
  • 2020-12-24
Spring3.1去掉了HibernateDaoSupport类。hibernate4需要通过getCurrentSession()获取session。并且设置org.springframework.orm.hibernate4.SpringSessionContext(在hibernate3的时候是thread和jta)。缓存设置改为net.sf.ehcache.hibernate.EhCacheProviderorg.hibernate.cache.ehcache.EhCacheRegionFactorySpring对hibernate的事务管理,不论是注解方式还是配置文件方式统一改为:getCurrentSession()事务会自动关闭,所以在有所jsp页面查询数据都会关闭session。要想在jsp查询数据库需要加入:org.springframework.orm.hibernate4.support.OpenSessionInViewFilter过滤器。Hibernate分页出现ResultSetmayonlybeaccessedinaforwarddirection需要设置hibernate结果集滚动false【引自9336703】



  首先我们需要一个生成和配置mongodb的工厂类:
1 public class mongofactorybean extends abstractfactorybean {
2
3 // 表示服务器列表(主从复制或者分片)的字符串数组
4 private string[] serverstrings;
5 // mongodb配置对象
6 private mongooptions mongooptions;
7 // 是否主从分离(读取从库),默认读写都在主库
8 private boolean readsecondary = false;
9 // 设定写策略(出错时是否抛异常),默认采用safe模式(需要抛异常)
10 private writeconcern writeconcern = writeconcern.safe;
11
12 @override
13 public class getobjecttype() {
14 return mongo.class;
15 }
16
17 @override
18 protected mongo createinstance() throws exception {
19 mongo mongo = initmongo();
20
21 // 设定主从分离
22 if (readsecondary) {
23 mongo.setreadpreference(readpreference.secondarypreferred());
24 }
25
26 // 设定写策略
27 mongo.setwriteconcern(writeconcern);
28 return mongo;
29 }
30
31 /**
32 * 初始化mongo实例
33 * @return
34 * @throws exception
35 */
36 private mongo initmongo() throws exception {
37 // 根据条件创建mongo实例
38 mongo mongo = null;
39 list serverlist = getserverlist();
40
41 if (serverlist.size() == 0) {
42 mongo = new mongo();
43 }else if(serverlist.size() == 1){
44 if (mongooptions != null) {
45 mongo = new mongo(serverlist.get(0), mongooptions);
46 }else{
47 mongo = new mongo(serverlist.get(0));
48 }
49 }else{
50 if (mongooptions != null) {
51 mongo = new mongo(serverlist, mongooptions);
52 }else{
53 mongo = new mongo(serverlist);
54 }
55 }
56 return mongo;
57 }
58
59
60 /**
61 * 根据服务器字符串列表,解析出服务器对象列表
62 *


63 *
64 * @title: getserverlist
65 *


66 *
67 * @return
68 * @throws exception
69 */
70 private list getserverlist() throws exception {
71 list serverlist = new arraylist();
72 try {
73 for (string serverstring : serverstrings) {
74 string[] temp = serverstring.split(":");
75 string host = temp[0];
76 if (temp.length > 2) {
77 throw new illegalargumentexception(
78 "invalid server address string: " + serverstring);
79 }
80 if (temp.length == 2) {
81 serverlist.add(new serveraddress(host, integer
82 .parseint(temp[1])));
83 } else {
84 serverlist.add(new serveraddress(host));
85 }
86 }
87 return serverlist;
88 } catch (exception e) {
89 throw new exception(
90 "error while converting serverstring to serveraddresslist",
91 e);
92 }
93 }
94
95 /* ------------------- setters --------------------- */
96 }
软件
前端设计
程序设计
Java相关