DEV1.0 Picnic
A high-performance, enterprise-grade JDBC library for converting DevExtreme DataSource queries into optimized SQL with built-in security protections against SQL injection and DoS attacks.
Overview
DEV1.0 Picnic is a proprietary library developed by DEV1.0 SAS that bridges the gap between frontend data grid libraries (DevExtreme DataGrid) and backend JDBC databases. It automatically converts complex client-side query options into optimized, secure SQL queries.
- Developed by: DEV1.0 SAS
- Version: 1.0-SNAPSHOT
- Core Module:
dev10-picnic-core(Java 11+) - Framework Integrations: Spring Boot 2.x/3.x, Quarkus, Micronaut
What Problem Does It Solve?
Modern web applications often need to:
- Display large datasets in interactive data grids
- Support complex filtering, sorting, pagination, and grouping
- Protect against SQL injection and DoS attacks
- Maintain high performance with optimized queries
- Support multiple database systems
DEV1.0 Picnic handles all of this automatically, allowing you to focus on business logic.
Key Features
Zero Configuration
- Convention over Configuration: Works with plain Java classes without any annotations
- Automatic snake_case Conversion: Java camelCase (
firstName) automatically maps to database snake_case (first_name) - Optional Annotations: Use annotations only when you need to override default naming conventions
- JPA-Compatible Annotations: Library annotations (
@Table,@Column,@Id,@Transient) use the same names as JPA for familiarity - JPA Entities Support: Use existing JPA entities without modification - full support for both
jakarta.persistence.*andjavax.persistence.* - Minimal Setup: Just define your POJO and start querying
Query Capabilities
- Filtering: Complex nested filters with AND/OR logic, comparison operators, string matching
- Sorting: Multi-column sorting with ASC/DESC order
- Pagination: Efficient skip/take pagination with total count
- Grouping: Multi-level group by with aggregations (sum, avg, count, min, max)
- Group Intervals: Date grouping (year, quarter, month, day, hour), numeric ranges, string prefixes
- Nested Entities: Automatic JOIN generation for related entities
- Calculated Columns: Virtual columns computed from SQL expressions
- CTEs (Common Table Expressions): Support for WITH clauses via
@Withannotation - Array Columns: Native PostgreSQL ARRAY, JSONB, and JSON array support
- UUID Support: Native UUID type handling across all databases
- Window Functions: Proper WINDOW clause support for analytical queries
- Export Mode: Optimized query mode for full data exports
Security Features
- SQL Injection Prevention: All user input is parameterized; expression validation for developer-defined SQL
- DoS Attack Mitigation: Configurable limits on pagination depth, result set size, filter complexity
- Query Timeout Protection: Configurable timeouts to prevent long-running queries
- Input Validation: Two-layer validation with configurable and absolute maximum limits
Performance Features
- Metadata Caching: Entity metadata cached for improved performance
- Connection Management: DataSource and Connection modes for flexible lifecycle management
- Query Optimization: Dialect-specific SQL generation for optimal database performance
- Efficient Pagination: LIMIT/OFFSET optimization per database dialect
- Automatic SQL Dialect Detection: Detects database type from JDBC connection
Requirements
- Java: 11 or higher (17+ for Spring Boot 3.x, Micronaut, Quarkus modules)
- Database: PostgreSQL 9.6+, MySQL 5.7+, SQL Server 2016+, Oracle 11g+, Snowflake, BigQuery, Redshift
- Dependencies:
- Jackson 2.13.3+ (JSON processing)
- JDBC driver for your target database
License
Copyright (c) 2025 DEV1.0 SAS. All rights reserved.
This software is proprietary and confidential.
Unauthorized copying, distribution, modification, reverse engineering,
or use of this software, in whole or in part, without express written
permission from DEV1.0 is strictly prohibited.Developed by: DEV1.0 SAS Support: For support, issues, or questions, please contact DEV1.0 SAS
Last updated on