package com.norteksoft.mms.form.dao;
import java.util.List;
import org.springframework.stereotype.Repository;
import com.norteksoft.mms.form.entity.TableColumn;
import com.norteksoft.mms.form.enumeration.DataType;
import com.norteksoft.product.orm.Page;
import com.norteksoft.product.orm.hibernate.HibernateDao;
import com.norteksoft.product.util.ContextUtils;
@Repository
public class TableColumnDao extends HibernateDao<TableColumn, Long> {
public List<TableColumn> getTableColumnByDataTableId(Long dataTableId){
return find("from TableColumn tc where tc.companyId=? and tc.deleted=? and tc.dataTableId=? order by tc.displayOrder",ContextUtils.getCompanyId(),false,dataTableId);
}
/**
* 根据数据表id获得数据表字段
* @param page
* @param dataTableId
*/
public void getTableColumnByDataTableId(Page<TableColumn> page,Long dataTableId){
this.searchPageByHql(page,"from TableColumn tc where tc.companyId=? and tc.deleted=? and tc.dataTableId=? and tc.dataType <> ? and tc.dataType <> ? and tc.dataType <> ? and tc.dataType <> ? order by tc.displayOrder",ContextUtils.getCompanyId(),false,dataTableId,DataType.CLOB,DataType.BLOB,DataType.COLLECTION,DataType.REFERENCE);
}
public List<TableColumn> getUnCompanyAllTableColumnByDataTableId(Long dataTableId){
return findNoCompanyCondition("from TableColumn tc where tc.dataTableId=? and tc.deleted=? order by tc.displayOrder",dataTableId,false);
}
public TableColumn getTableColumnByColName(Long dataTableId,String columnName){
List<TableColumn> cols=find("from TableColumn tc where tc.companyId=? and tc.dataTableId=? and tc.name=? and tc.deleted=false order by tc.displayOrder",ContextUtils.getCompanyId(),dataTableId,columnName);
if(cols.size()>0)return cols.get(0);
return null;
}
public void deleteAllTableColumns(Long dataTableId){
this.createQuery("delete from TableColumn t where t.dataTableId=null or t.dataTableId=?", dataTableId).executeUpdate();
}
public List<TableColumn> getDeleteColumnByColumnName(String columnName,Long dataTableId) {
return find("from TableColumn tc where tc.companyId=? and tc.deleted=? and tc.name=? and tc.dataTableId=? order by tc.displayOrder",ContextUtils.getCompanyId(),true,columnName,dataTableId);
}
public void deleteTableColumnsByTable(Long dataTableId){
this.createQuery("delete from TableColumn t where t.dataTableId=?", dataTableId).executeUpdate();
}
}