maia_modificado/.svn/pristine/21/21838a67b30aa13711a94d7c003...

54 lines
1.7 KiB
Plaintext
Executable File

package com.fp.persistence.commondb.helper;
import javax.persistence.Query;
import com.fp.common.helper.FkException;
import com.fp.persistence.commondb.PersistenceHelper;
/**
* Clase que entrega la tabla padre y dependiente dado un foreing key.
*
* @author Jorge Vaca
* @version 2.1
*/
public class Fkconstraint implements FkException {
@Override
public String[] getFkData(String pFk) {
try {
String parent = this.getParentTable(pFk);
String child = this.getChildTable(pFk);
String[] data = new String[2];
data[0] = parent;
data[1] = child;
return data;
} catch (Exception e) {
// No tomar accion.
}
return null;
}
private String getParentTable(String pFk) throws Exception {
String table = null;
Query qry = PersistenceHelper.getEntityManager().createNativeQuery(Fkconstraint.SQL);
qry.setParameter("fk", pFk);
table = (String) qry.getSingleResult();
return table;
}
private String getChildTable(String pFk) throws Exception {
String table = null;
// SQLQuery qry = pSession.createSQLQuery(Fkconstraint.SQL_DEP);
Query qry = PersistenceHelper.getEntityManager().createNativeQuery(Fkconstraint.SQL_DEP);
qry.setParameter("fk", pFk);
table = (String) qry.getSingleResult();
return table;
}
private static final String SQL = "select table_name from user_constraints where constraint_name = ( "
+ "select unique r_constraint_name from all_constraints where constraint_name = :fk)";
private static final String SQL_DEP = "select table_name from user_constraints where constraint_name = :fk";
}