Conversation
Phase 5 of ESPI 4.0 schema compliance focuses on IntervalBlock entity
field order and repository query optimization for read-only operations.
Changes:
- IntervalBlockDto: Updated field order to match espi.xsd sequence
- Removed Atom-level fields (published, updated, links, description)
- Kept only ESPI schema fields: interval, intervalReadings
- Updated constructors and removed unused imports
- Added schema compliance documentation
- IntervalBlockMapper: Updated mappings for simplified DTO
- Removed mappings for non-existent Atom fields
- Removed updateEntity method (read-only operations only)
- Removed @MappingTarget import
- IntervalBlockRepository: Optimized for indexed queries only
- Kept: findAllIds, findAllByMeterReadingId, findAllIdsByUsagePointId
- Removed: deleteByUuid, findAllIdsByXpath3, findIdByXpath,
findByMeterReadingEntity, findByUri
- Removed @Modifying, @transactional imports
- IntervalBlockServiceImpl: Updated for repository changes
- Updated findAllByMeterReading to use findAllByMeterReadingId
- Deprecated findByURI (non-indexed query removed)
- IntervalBlockRepositoryTest: Removed obsolete tests
- Removed redundant deleteByUuid test
- Removed tests for non-indexed queries (xpath, URI-based)
- Updated empty results test
- All 24 tests passing
Related Issues:
- Part of Issue #28 (ESPI 4.0 Schema Compliance)
- Created Issue #70 (Remove legacy Long id fields from DTOs)
All 545 openespi-common tests passing.
DtoExportServiceImplTest validates XML output matches espi.xsd.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 5 of the ESPI 4.0 schema compliance project updates IntervalBlock entity, DTO, mapper, repository, and tests to match the espi.xsd element sequence and optimize for read-only operations.
Changes Made
IntervalBlockDto
interval,intervalReadingsOffsetDateTimeimportIntervalBlockMapper
toDtomapping - removed mappings for deleted Atom fieldstoEntitymapping - marked Atom fields asignore=trueupdateEntitymethod (read-only operations only)@MappingTargetimportIntervalBlockRepository
findAllIds()- returns all interval block IDsfindAllByMeterReadingId()- indexed on meter_reading_idfindAllIdsByUsagePointId()- indexed through relationshipsdeleteByUuid()- redundant with inheriteddeleteById()findAllIdsByXpath3()- complex join without indexfindIdByXpath()- complex join without indexfindByMeterReadingEntity()- duplicate offindAllByMeterReadingId()findByUri()- non-indexed query on self_link_hrefIntervalBlockServiceImpl
findAllByMeterReading()to usefindAllByMeterReadingId()findByURI()with warning (non-indexed query removed)IntervalBlockRepositoryTest
shouldDeleteIntervalBlockByUuidtestshouldFindAllIntervalBlockIdsByXpath3shouldFindIntervalBlockIdByXpathshouldFindIntervalBlocksByMeterReadingEntityshouldFindIntervalBlockByUrishouldHandleEmptyResultsGracefullytestValidation
XML Output Validation
The DtoExportServiceImplTest confirms proper XML structure:
Related Issues
Testing Instructions
🤖 Generated with Claude Code