private void initializeCacheTexts() {
        if (description == null || shortdesc == null || hint == null || location == null) {
            if (inDatabase()) {
                final Geocache partial = DataStore.loadCacheTexts(this.getGeocode());
                if (description == null) {
                    setDescription(partial.getDescription());
                }
                if (shortdesc == null) {
                    setShortDescription(partial.getShortDescription());
                }
                if (hint == null) {
                    setHint(partial.getHint());
                }
                if (location == null) {
                    setLocation(partial.getLocation());
                }
            } else {
                setDescription(StringUtils.defaultString(description));
                setShortDescription(StringUtils.defaultString(shortdesc));
                setHint(StringUtils.defaultString(hint));
                setLocation(StringUtils.defaultString(location));
            }
        }
    }
loads long text parts of a cache on demand (but all fields together)
main/src/main/java/cgeo/geocaching/models/Geocache.java