Changeset 325fbc928af7eb9110e8e82e634cc619be16e294

Show
Ignore:
Timestamp:
05/22/08 19:12:38 (5 months ago)
Author:
Christopher Jung <bktheg@web.de>
git-committer:
Christopher Jung <bktheg@web.de> 1211476358 +0200
git-parent:

[c6fe5ae78b4e556ec49be2d448128b662815d2b6]

git-author:
Christopher Jung <bktheg@web.de> 1211476358 +0200
Message:

[ref] Cache fuer Forschungen eines Benutzers ergaenzt

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/net/driftingsouls/ds2/server/entities/User.java

    r6676c57 r325fbc9  
    2121import java.math.BigInteger; 
    2222import java.util.HashMap; 
     23import java.util.Iterator; 
    2324import java.util.List; 
    2425import java.util.Map; 
     
    200201        @Transient 
    201202        private UserFlagschiffLocation flagschiffObj = null; 
     203        @Transient 
     204        private Map<Integer,UserResearch> researched; 
    202205         
    203206        /** 
     
    677680        public void addResearch( int researchID ) { 
    678681                org.hibernate.Session db = context.getDB(); 
    679                 db.persist(new UserResearch(this, Forschung.getInstance(researchID))); 
     682                UserResearch userres = new UserResearch(this, Forschung.getInstance(researchID)); 
     683                db.persist(userres); 
     684                 
     685                if( this.researched != null ) { 
     686                        this.researched.put(researchID, userres); 
     687                } 
    680688        } 
    681689         
     
    10571065                        return null; 
    10581066                } 
    1059                 org.hibernate.Session db = context.getDB(); 
    1060                 return (UserResearch) db.createQuery("from UserResearch where owner=? AND research=?").setInteger(0, this.getId()).setInteger(1, research.getID()).uniqueResult(); 
     1067                 
     1068                if( this.researched == null ) { 
     1069                        this.researched = new HashMap<Integer,UserResearch>(); 
     1070                         
     1071                        org.hibernate.Session db = context.getDB(); 
     1072                         
     1073                        List userresList = db.createQuery("from UserResearch where owner= :user") 
     1074                                .setEntity("user", this) 
     1075                                .list(); 
     1076                         
     1077                        for( Iterator iter=userresList.iterator(); iter.hasNext(); ) { 
     1078                                UserResearch userres = (UserResearch)iter.next(); 
     1079                                 
     1080                                this.researched.put(userres.getResearch().getID(), userres); 
     1081                        } 
     1082                } 
     1083                return this.researched.get(research.getID()); 
    10611084        } 
    10621085}