-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue #2258 - Typeful Metadata #2270
Open
homedirectory
wants to merge
173
commits into
develop
Choose a base branch
from
Issue-#2258
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains 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
…ubpackage to be later turned into new implementation (based on EQL3 metadata).
sorted() was causing a runtime error due to StringBuffer and String not being mutually comparable.
…ive to visitors with a single clause
These predicates are preferred over "instanceof" statements.
…keys parameterised with boolean
…data Injection of the metadata service is yet to be implemented.
…type metadata instances
…ies to generate metadata for property "version" It is not clear why a more specific predicate (targeting only the superclass) had been used, but the incosistencies it could result in don't make a lot of sense (e.g., generated types based on synthetic-based-on-persistent would lack metadata for "version").
…-on-persistent entity types Consider the whole type hierarchy, not just the superclass.
…ut a DB table During migration to Typeful Metadata the algorithm has been incorrecly understood and table name existence became a strict constraint.
…tity proxy types
Note: Cache.get, if key is absent, caches the value returned by the supplied loader, so there is no need to Cache.put it manually.
…ion of DomainProperty
… behaviour * Exclude plain properties of persistent entities (they were absent from EQL3 metadata). * Correct computation of key member indices for entities with a simple key.
Given the following entities: Entity E CompositeKeyMember property x: U Union Entity U property y: E Fetch model construction would get stuck in a cycle between them.
…ies typed with union entities
…hip between an entity and a union entity
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.
Resolve #2258.
This PR should be merged together with corresponding PRs in TG applications and https://github.com/fieldenms/tg-libs/pull/27.
Summary of changes
There have been a number of breaking changes associated with the removal of EQL3 metadata and EQL2
metadata, therefore TG applications need to be adjusted accordingly.
Metadata:
are detected early (in some cases an unsupported type is shown mercy and corresponding property is
simply skipped).
the same way as other properties. This hadn't been the case with EQL3 metadata, which ignored
the nature of such properties, instead forcing the caller to look at their sub-properties for
this information.
Other changes:
BigDecimal
.IProxyEntity
.IIdOnlyProxyEntity
.Double
byBigDecimal
).Future work
Encapsulate Hibernate type access in a standalone service. It should have the following API:
Encapsulate EqlTable access in a standalone service. It should have the following API:
Encapsulate TableStructForBatchInsertion access in a standalone service. It should have the following API:
Encapsulate database DDL generation in a standalone service. It should have the following API:
Configure dependency injection and decouple
IDomainMetadata
fromQuerySourceInfoProvider
.