Ejemplo n.º 1
0
 @Override
 @CacheEvict(value = "objectPermanent", allEntries = true)
 public void cloneObjectListToLayer(
     List<Long> objIdList, Long targetLayerId, GeoUser currentGeoUser) {
   List<GeoObject> originalObjects = listByIds(objIdList);
   for (GeoObject orig : originalObjects) {
     GeoObject obj = orig.clone();
     obj.setId(null);
     HashSet<GeoObjectTag> objectTags = new HashSet<GeoObjectTag>();
     for (GeoObjectTag prop : orig.getTags()) {
       GeoObjectTag tag = new GeoObjectTag();
       tag.setKey(prop.getKey());
       tag.setValue(prop.getValue());
       tag.setGeoObject(obj);
       objectTags.add(tag);
     }
     obj.setTags(objectTags);
     obj.setCreatedBy(currentGeoUser);
     obj.setCreated(Calendar.getInstance().getTime());
     getCurrentSession()
         .createSQLQuery(
             "INSERT INTO geo_layer_to_object (layer_id, object_id) VALUES(:lId, :oId)")
         .setLong("oId", add(obj).getId())
         .setLong("lId", targetLayerId)
         .executeUpdate();
   }
 }