protected void selectEntitySequences(E entityInstance) throws SQLException {

		//SQL生成
		StringBuilder sql = new StringBuilder();
		sql.append("SELECT ");

		int counter=0;
		for(String fieldName : this.fieldMap.keySet()){
			JdbcColumn column = this.fieldMap.get(fieldName);
			Object value = null;
			try {
				//フィールドの値をバインド変数配列に追加
				value = column.getValue(entityInstance);
			} catch (IllegalArgumentException e) {
				throw new SimpleJdbcRuntimeException(this.entity, "フィールド値取得失敗 フィールド名:"+fieldName, e);
			} catch (IllegalAccessException e) {
				throw new SimpleJdbcRuntimeException(this.entity, "フィールド値取得失敗 フィールド名:"+fieldName, e);
			}
			//値がセットされていないカラムのみ
			if(column.isIncrementValue() && value == null){
				counter++;
				if(counter > 1){
					sql.append(", ");
				}
				else {
					sql.append(" ");
				}
				IncrementValue incrementValue = column.getIncrementValue();
				if(incrementValue.sql().equals("")){
					sql.append(incrementValue.sequence()).append(".NEXTVAL");
				}
				else {
					sql.append(incrementValue.sql());
				}
				// SEQ_XXXXX.NEXTVAL AS db_column_name
				sql.append(" AS ").append(column.getDbColumnName());
			}
		}

		//シーケンス値を必要としなかった場合はSELECTしない
		if(counter == 0){
			return;
		}

		sql.append(" FROM DUAL");	//仮想テーブルから取得

		log.debug(sql.toString());

		PreparedStatement pstmt = null;
		ResultSet result = null;

		try {
			pstmt = dbConnection.prepareStatement(sql.toString());
			result = pstmt.executeQuery();
			if(result.next()){
				//インスタンスにフィールド値を詰めなおす
				setResultToEntityByColumnName(result, result.getMetaData(), entityInstance);
			}
			else {
				throw new SQLException("シーケンス値取得失敗 エンティティ:"+entity.getName()+" SQL:"+sql.toString());
			}

		}
		finally {
			DbResourceUtil.close(pstmt, result);
		}
	}