Github user kevdoran commented on a diff in the pull request: https://github.com/apache/nifi-registry/pull/10#discussion_r140024359 --- Diff: nifi-registry-framework/src/main/java/org/apache/nifi/registry/db/repository/BucketRepository.java --- @@ -14,38 +14,21 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.nifi.registry.metadata; +package org.apache.nifi.registry.db.repository; -import java.util.Set; +import org.apache.nifi.registry.db.entity.BucketEntity; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.data.repository.query.Param; + +import java.util.List; /** - * The metadata for a bucket, along with the metadata about any objects stored in the bucket, such as flows. + * Spring Data Repository for BucketEntity. */ -public interface BucketMetadata { - - /** - * @return the identifier of this bucket - */ - String getIdentifier(); - - /** - * @return the name of this bucket - */ - String getName(); - - /** - * @return the timestamp of when this bucket was created - */ - long getCreatedTimestamp(); - - /** - * @return the description of this bucket - */ - String getDescription(); +public interface BucketRepository extends PagingAndSortingRepository<BucketEntity,String> { - /** - * @return the metadata about the flows that are part of this bucket - */ - Set<FlowMetadata> getFlowMetadata(); + @Query("SELECT b FROM BucketEntity b WHERE LOWER(b.name) = LOWER(:name)") + List<BucketEntity> findByName(@Param("name") String name); --- End diff -- This can be rewritten without the `@Query` annotation just by renaming the method to `findByNameIgnoreCase`, and then the generated spring-data-jpa code will produce the query you want. The advantage is not having to write and maintain the SQL in the `@Query` annotation, which prevents vendor-specific SQL syntax from sneaking in over time. It might not be possible to avoid the `@Query` annotation for every repository method, for example if you need a specific query optimization that spring-data-jpa cannot generate. I still think limiting explicit SQL is good practice in order to keep open the possibility that someone might want to modify registry to use an alternative to H2.
---