feat: ESPI 4.0 Schema Compliance - Phase 6: MeterReading #72
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 6 of the ESPI 4.0 schema compliance project updates MeterReading entity, DTO, mapper, repository, and tests. Per ESPI 4.0 specification, MeterReading has NO child elements - relationships to ReadingType and IntervalBlock are expressed via Atom links only.
Changes Made
MeterReadingDto
OffsetDateTime,List<>,LinkDtoMeterReadingMapper
BaseMapperUtils(not needed)IntervalBlockMapper(relationships via Atom links)ReadingTypeMapper(relationships via Atom links)updateEntitymethod (read-only operations only)toEntitywith explicit mappings for all audit/relationship fieldsMeterReadingRepository
findAllIds()- returns all meter reading IDsfindAllIdsByUsagePointId()- indexed on usage_point_iddeleteById()override - redundant with inherited methodfindByRelatedHref()- non-indexed query on relatedLinksfindAllRelated()- complex query without indexesfindAllIdsByXpath2()- complex join without indexfindIdByXpath()- complex join without indexMeterReadingRepositoryTest
shouldFindMeterReadingsByRelatedHrefshouldFindAllRelatedEntitiesshouldFindAllMeterReadingIdsByXpath2shouldFindMeterReadingIdByXpathshouldHandleEmptyResultsGracefullytestESPI 4.0 Specification Note
Per the espi.xsd schema, MeterReading is defined as:
Note that MeterReading extends IdentifiedObject with NO additional child elements. Relationships to IntervalBlock and ReadingType are expressed via Atom
<link>elements in the entry, not as embedded XML elements.Validation
Related Issues
Testing Instructions
🤖 Generated with Claude Code