Project

General

Profile

1
package eu.dnetlib.goldoa.service.dao;
2

    
3
import eu.dnetlib.goldoa.domain.BankAccount;
4
import eu.dnetlib.goldoa.domain.Publisher;
5
import org.apache.log4j.Logger;
6
import org.hibernate.criterion.MatchMode;
7
import org.hibernate.criterion.Restrictions;
8
import org.springframework.stereotype.Repository;
9

    
10
import java.math.BigInteger;
11
import java.util.List;
12

    
13
/**
14
 * Created by antleb on 3/13/15.
15
 */
16
@Repository
17
public class PublisherDAO extends AbstractDao<String,Publisher>{
18
	private static Logger logger = Logger.getLogger(PublisherDAO.class);
19
	@SuppressWarnings("unchecked")
20
	public List<Object> search(String term) {
21
		return createEntityCriteria().add(Restrictions.
22
				ilike("name",term, MatchMode.ANYWHERE)).list();
23
	}
24

    
25
	@SuppressWarnings("unchecked")
26
	public Publisher getPublisher(String id) {
27
		List<Publisher> rs =  createEntityCriteria()
28
				.add(Restrictions.ilike("id", id)).list();
29
		if(rs.size() == 0)
30
			return null;
31
		return rs.get(0);
32
	}
33

    
34
	public Publisher savePublisher(Publisher publisher) {
35

    
36
		if(publisher.getBankAccount() == null) {
37
			BigInteger id = getBankId();
38
			publisher.setBankAccount(new BankAccount(id,null, getBankAddress().toString(), null, null, null));
39
		}
40

    
41
		Publisher p = getPublisher(publisher.getId());
42
		Publisher publisher_merged = null;
43

    
44
		if(p!=null)
45
			publisher_merged = (Publisher) getSession().merge(publisher);
46
		else
47
			persist(publisher);
48

    
49
		return publisher;
50
	}
51

    
52
    public BigInteger getBankAddress() {
53
		return (BigInteger) getSession().createSQLQuery("select nextval('publisher_bank_address_seq') as id").list().get(0);
54

    
55
    }
56

    
57
	public BigInteger getBankId() {
58
		return (BigInteger) getSession().createSQLQuery("select nextval('bank_id_seq') as id").list().get(0);
59

    
60
	}
61

    
62
    @SuppressWarnings("unchecked")
63
    public Publisher getPublisherByName(String name) {
64
		List<Publisher> rs = (List<Publisher>) createEntityCriteria()
65
				.add(Restrictions.ilike("name", name)).list();
66
		if(rs.size() > 0 )
67
			return rs.get(0);
68
		return null;
69
    }
70
}
(13-13/15)