package org.zstack.network.service;
import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.transaction.annotation.Transactional;
import org.zstack.core.db.DatabaseFacade;
import javax.persistence.TypedQuery;
import java.util.List;
/**
* Created by xing5 on 2016/6/24.
*/
@Configurable(preConstruction = true, autowire = Autowire.BY_TYPE)
public class NetworkProviderFinder {
@Autowired
private DatabaseFacade dbf;
@Transactional(readOnly = true)
public String getNetworkProviderTypeByNetworkServiceType(String l3Uuid, String networkServiceType) {
String sql = "select provider.type from NetworkServiceProviderVO provider, NetworkServiceL3NetworkRefVO ref" +
" where provider.uuid = ref.networkServiceProviderUuid and ref.networkServiceType = :nsType" +
" and ref.l3NetworkUuid = :l3Uuid";
TypedQuery<String> q = dbf.getEntityManager().createQuery(sql, String.class);
q.setParameter("nsType", networkServiceType);
q.setParameter("l3Uuid", l3Uuid);
List<String> ret = q.getResultList();
return ret.isEmpty() ? null : ret.get(0);
}
}