code: protected String buildSelectSQL(final TableMetadata metadata, final Class<? extends Object> type,
  			final SqlConfig sqlConfig, final boolean addCondition) {
  		final List<? extends TableMetadata.Column> columns = metadata.getColumns();
  
  		final StringBuilder sql = new StringBuilder(
  				buildSelectClause(metadata, type, sqlConfig.getSqlAgentFactory().getSqlIdKeyName()));
  
  		if (addCondition) {
  			sql.append("/*BEGIN*/").append(System.lineSeparator());
  			sql.append("WHERE").append(System.lineSeparator());
  
  			for (final TableMetadata.Column col : columns) {
  				final String camelColName = col.getCamelColumnName();
  				final StringBuilder parts = new StringBuilder().append("\t").append("AND ")
  						.append(col.getColumnIdentifier())
  						.append(" = ").append("/*").append(camelColName).append("*/''").append(System.lineSeparator());
  				wrapIfComment(sql, parts, col);
  			}
  			sql.append("/*END*/").append(System.lineSeparator());
  
  			boolean firstFlag = true;
  			final List<? extends TableMetadata.Column> keys = metadata.getKeyColumns();
  			if (!keys.isEmpty()) {
  				sql.append("ORDER BY").append(System.lineSeparator());
  				firstFlag = true;
  				for (final TableMetadata.Column col : keys) {
  					sql.append("\t");
  					if (firstFlag) {
  						sql.append("  ");
  						firstFlag = false;
  					} else {
  						sql.append(", ");
  					}
  					sql.append(col.getColumnIdentifier()).append(System.lineSeparator());
  				}
  			}
  		}
  
  		return sql.toString();
  	}
docs: SELECT SQL生成
  
  @param metadata エンティティメタ情報
  @param type エイティティタイプ
  @param sqlConfig SQLコンフィグ
  @param addCondition 条件を追加するかどうか。追加する場合<code>true</code>
  @return SELECT SQL