Όταν ανέπτυξα, διάβασα τον κώδικα άλλων ανθρώπων και βρήκα μια σημείωση που ονομάζεται @MappedSuperclass, με βάση τον λόγο για τον οποίο την είδα για πρώτη φορά, αναζήτησα τη σημασία της στο Διαδίκτυο και θα τη συνοψίσω εδώ.
Όροι χρήσης:
Όταν εργαζόμαστε σε ένα έργο ανάπτυξης, χρησιμοποιούμε συχνά τη λειτουργία της αντιστοίχισης οντοτήτων σε έναν πίνακα βάσης δεδομένων και αυτή τη στιγμή συχνά διαπιστώνουμε ότι σε πολλές κατηγορίες οντοτήτων που πρέπει να υπονοήσουμε,Υπάρχουν πολλά κοινά χαρακτηριστικά όπως αναγνωριστικό αριθμού, δημιουργήθηκε από, χρόνος δημιουργίας, τροποποιημένος, τροποποιημένος χρόνος, σημειώσεις κ.λπ。 Σε αυτήν την περίπτωση, θα μπορούσαμε να σκεφτούμε να αφαιρέσουμε αυτές τις ιδιότητες ως γονική κλάση και στη συνέχεια να κληρονομήσουμε τη γονική κλάση με μια διαφορετική κλάση οντοτήτων.
Τότε μπορούμεΧρησιμοποιώντας @MappedSuperclass σχολιασμό, μπορούμε να αντιμετωπίσουμε την κλάση οντοτήτων ως την οντότητα της βασικής κλάσης, η οποία δεν υπονοείται στον πίνακα της βάσης δεδομένων, αλλά η οντότητα υποκλάσης που τη μεταβιβάζει θα σαρώσει αυτόματα τα έμμεσα χαρακτηριστικά της οντότητας βασικής κλάσης και θα την προσθέσει στον αντίστοιχο πίνακα βάσης δεδομένων της οντότητας υποκλάσης.
Περιβάλλον χρήσης:
1.@MappedSuperclass οι σχολιασμοί χρησιμοποιούνται πάνω από τη γονική κλάση για τον προσδιορισμό της γονικής κλάσης
Μια κλάση που προσδιορίζεται 2.@MappedSuperclass υποδεικνύει ότι δεν μπορεί να αντιστοιχιστεί σε έναν πίνακα βάσης δεδομένων, επειδή δεν είναι μια πλήρης κλάση οντότητας, αλλά έχει ιδιότητες που μπορούν να υπονοηθούν στον πίνακα βάσης δεδομένων που χρησιμοποιείται από την υποκλάση της
3.@MappedSuperclass δεν μπορούν πλέον να έχουν @Entity ή @Table σχολιασμούς
|