public Map<String, Boolean> getColNullableMap(Connection con) throws DataAccessException
	{
		if (isColNullable != null)
			return isColNullable;
		Statement stmt = null;
		ResultSet rs = null;
		try
		{
			if (con != null && !con.isClosed())
			{
				stmt = con.createStatement();
				rs = stmt.executeQuery("select * from " + TableName);
				ResultSetMetaData rm = rs.getMetaData();
				int colCount = rm.getColumnCount();
				isColNullable = new LinkedHashMap<String, Boolean>();
				for (String col : columns.keySet())
				{
					for (int i = 1; i <= colCount; i++)
					{
						if (col.equalsIgnoreCase(rm.getColumnName(i)))
						{
							isColNullable.put(col, rm.isNullable(i) == java.sql.ResultSetMetaData.columnNullable ? true : false);
						}
					}
				}
				return isColNullable;
			}
			return null;
		}
		catch (SQLException e)
		{
			throw new DataAccessException(ErrorCode.ERR_GET_CONNECTION_METADATA, e, log);
		}
		finally
		{
			ConnectionManager.cleanUp(rs, stmt, null);
		}
	}