Project

General

Profile

« Previous | Next » 

Revision 0ecfd682

Added by Andreas Müller almost 8 years ago

Remove bidirectionality for supplemental data #5743

View differences:

cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/MarkerDaoImpl.java
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/ 
9

  
10
package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
11

  
12
import java.util.List;
13
import java.util.UUID;
14

  
15
import org.hibernate.Criteria;
16
import org.hibernate.criterion.Projections;
17
import org.hibernate.criterion.Restrictions;
18
import org.springframework.stereotype.Repository;
19

  
20
import eu.etaxonomy.cdm.model.common.AnnotatableEntity;
21
import eu.etaxonomy.cdm.model.common.Marker;
22
import eu.etaxonomy.cdm.model.common.MarkerType;
23
import eu.etaxonomy.cdm.model.common.User;
24
import eu.etaxonomy.cdm.persistence.dao.common.IMarkerDao;
25
import eu.etaxonomy.cdm.persistence.query.OrderHint;
26

  
27
@Repository
28
public class MarkerDaoImpl extends VersionableDaoBase<Marker> implements IMarkerDao {
29

  
30
	public MarkerDaoImpl() {
31
		super(Marker.class);
32
	}
33

  
34
	public int count(MarkerType markerType) {
35
		Criteria criteria = getSession().createCriteria(Marker.class);
36
		criteria.add(Restrictions.eq("markerType", markerType));
37
		criteria.setProjection(Projections.rowCount());
38
        return ((Number)criteria.uniqueResult()).intValue();
39
	}
40

  
41
	public List<Marker> list(MarkerType markerType, Integer pageSize,	Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
42
		Criteria criteria = getSession().createCriteria(Marker.class);
43
		criteria.add(Restrictions.eq("markerType", markerType));
44
		
45
		if(pageSize != null) {
46
			criteria.setMaxResults(pageSize);
47
		    if(pageNumber != null) {
48
		    	criteria.setFirstResult(pageNumber * pageSize);
49
		    }
50
		}
51
		
52
		addOrder(criteria, orderHints);
53
		List<Marker> results = (List<Marker>)criteria.list();		
54
		defaultBeanInitializer.initializeAll(results, propertyPaths);
55
		return results;
56
	}
57
	
58
	@Override
59
	public UUID delete(Marker marker) {
60
		if(marker.getMarkedObj() != null) {
61
			AnnotatableEntity markedObject = marker.getMarkedObj();
62
			marker.setMarkedObj(null);
63
			if(markedObject.getMarkers().contains(marker)) {
64
				markedObject.getMarkers().remove(marker);
65
				getSession().merge(markedObject);
66
			} 			
67
		} else {
68
		    marker.setMarkedObj(null);
69
		    getSession().delete(marker);
70
		}
71
		return marker.getUuid();
72
	}
73

  
74
	public Integer count(User creator, MarkerType markerType) {
75
		Criteria criteria = getSession().createCriteria(Marker.class);
76
		criteria.add(Restrictions.eq("createdBy", creator));
77
		if(markerType != null) {
78
		    criteria.add(Restrictions.eq("markerType", markerType));
79
		}
80
		criteria.setProjection(Projections.rowCount());
81
        return ((Number)criteria.uniqueResult()).intValue();
82
	}
83

  
84
	public List<Marker> list(User creator, MarkerType markerType, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
85
		Criteria criteria = getSession().createCriteria(Marker.class);
86
		criteria.add(Restrictions.eq("createdBy", creator));
87
		if(markerType != null) {
88
		    criteria.add(Restrictions.eq("markerType", markerType));
89
		}
90
		
91
		if(pageSize != null) {
92
			criteria.setMaxResults(pageSize);
93
		    if(pageNumber != null) {
94
		    	criteria.setFirstResult(pageNumber * pageSize);
95
		    }
96
		}
97
		
98
		addOrder(criteria, orderHints);
99
		List<Marker> results = (List<Marker>)criteria.list();		
100
		defaultBeanInitializer.initializeAll(results, propertyPaths);
101
		return results;
102
	}
103

  
104
}
1
/**
2
* Copyright (C) 2009 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9

  
10
package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
11

  
12
import java.util.List;
13
import java.util.UUID;
14

  
15
import org.hibernate.Criteria;
16
import org.hibernate.criterion.Projections;
17
import org.hibernate.criterion.Restrictions;
18
import org.springframework.stereotype.Repository;
19

  
20
import eu.etaxonomy.cdm.model.common.Marker;
21
import eu.etaxonomy.cdm.model.common.MarkerType;
22
import eu.etaxonomy.cdm.model.common.User;
23
import eu.etaxonomy.cdm.persistence.dao.common.IMarkerDao;
24
import eu.etaxonomy.cdm.persistence.query.OrderHint;
25

  
26
@Repository
27
public class MarkerDaoImpl extends VersionableDaoBase<Marker> implements IMarkerDao {
28

  
29
	public MarkerDaoImpl() {
30
		super(Marker.class);
31
	}
32

  
33
	@Override
34
    public int count(MarkerType markerType) {
35
		Criteria criteria = getSession().createCriteria(Marker.class);
36
		criteria.add(Restrictions.eq("markerType", markerType));
37
		criteria.setProjection(Projections.rowCount());
38
        return ((Number)criteria.uniqueResult()).intValue();
39
	}
40

  
41
	@Override
42
    public List<Marker> list(MarkerType markerType, Integer pageSize,	Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
43
		Criteria criteria = getSession().createCriteria(Marker.class);
44
		criteria.add(Restrictions.eq("markerType", markerType));
45

  
46
		if(pageSize != null) {
47
			criteria.setMaxResults(pageSize);
48
		    if(pageNumber != null) {
49
		    	criteria.setFirstResult(pageNumber * pageSize);
50
		    }
51
		}
52

  
53
		addOrder(criteria, orderHints);
54
		List<Marker> results = criteria.list();
55
		defaultBeanInitializer.initializeAll(results, propertyPaths);
56
		return results;
57
	}
58

  
59
	@Override
60
	public UUID delete(Marker marker) {
61
		throw new RuntimeException("Delete is not supported for markers. Markers must be removed from the marked object instead.");
62
	}
63

  
64
	public Integer count(User creator, MarkerType markerType) {
65
		Criteria criteria = getSession().createCriteria(Marker.class);
66
		criteria.add(Restrictions.eq("createdBy", creator));
67
		if(markerType != null) {
68
		    criteria.add(Restrictions.eq("markerType", markerType));
69
		}
70
		criteria.setProjection(Projections.rowCount());
71
        return ((Number)criteria.uniqueResult()).intValue();
72
	}
73

  
74
	public List<Marker> list(User creator, MarkerType markerType, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths) {
75
		Criteria criteria = getSession().createCriteria(Marker.class);
76
		criteria.add(Restrictions.eq("createdBy", creator));
77
		if(markerType != null) {
78
		    criteria.add(Restrictions.eq("markerType", markerType));
79
		}
80

  
81
		if(pageSize != null) {
82
			criteria.setMaxResults(pageSize);
83
		    if(pageNumber != null) {
84
		    	criteria.setFirstResult(pageNumber * pageSize);
85
		    }
86
		}
87

  
88
		addOrder(criteria, orderHints);
89
		List<Marker> results = criteria.list();
90
		defaultBeanInitializer.initializeAll(results, propertyPaths);
91
		return results;
92
	}
93

  
94
}

Also available in: Unified diff