       /*********************************************
        METHODS FOR RELATION (${target_name})
	*********************************************/

	/**
	 * get${bo_name}s
	 * @param target ${target_name}
	 *@return BOList
	*/
	public BOList get${bo_name}sBy${field_name}(${target_name} target) throws BOException {
		BOList list = (BOList)naming.create(BO_LIST_NAME);
		try {
			BOList bos = get${parent_name}s();
			for(int i = 0; i < bos.size(); i++) {
				${parent_name} parent = (${parent_name})bos.get(i);
				BOList childs = get${bo_name}s(parent);
				for(int j = 0; j < childs.size(); j++) {
					${bo_name} child = (${bo_name})childs.get(j);				
					String key = child.get${field_name}();
					if(target.getKey().equals(key)) {
						list.add(child);
					}
				}
			}
		} catch (BOException e) {
			throw new BOException("Failed retriving ${bo_name}: " + e.toString());
		}
		return list;
	}

	/**
	 * get${bo_name}s
	 * @param target ${target_name}
	 * @param parent ${parent_name}
	 *@return BOList
	*/
	public BOList get${bo_name}sBy${field_name}(${parent_name} parent, ${target_name} target) throws BOException {
		BOList list = (BOList)naming.create(BO_LIST_NAME);
		try {
			BOList childs = get${bo_name}s(parent);
			for(int i = 0; i < childs.size(); i++) {
				${bo_name} child = (${bo_name})childs.get(i);				
				String key = child.get${field_name}();
				if(target.getKey().equals(key)) {
					list.add(child);
				}
			}
		} catch (BOException e) {
			throw new BOException("Failed retriving ${bo_name}: " + e.toString());
		}
		return list;
	}

	/**
	 * get${target_name}
	 * @param target ${bo_name}
	 * @return ${target_name}
	*/
	public ${target_name} get${target_name}By${field_name}(${bo_name} target) throws BOException {
		${target_name} obj = null;
		try {
			${target_name}Manager manager = (${target_name}Manager)
			naming.lookup("${interface_name}.${target_name}Manager");

			String key = target.get${field_name}();
			if(key == null || "".equals(key))
				return obj;

			obj =  manager.lookup${target_name}(key);

		} catch (BOException e) {
			throw new BOException("Failed retriving ${target_name}: " + e.toString());
		}
		return obj;
	}