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.Restrictions;
7
import org.springframework.stereotype.Repository;
8

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

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

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

    
33
	public Publisher savePublisher(Publisher publisher) {
34

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

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

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

    
48
		return publisher;
49
	}
50

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

    
54
    }
55

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

    
59
	}
60

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