CARVIEW |
Select Language
HTTP/2 301
date: Wed, 30 Jul 2025 03:48:15 GMT
content-type: text/html; charset=utf-8
content-length: 0
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
location: https://github.com/Impetus/kundera/wiki/Mapped-SuperClass-Support
cache-control: no-cache
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
set-cookie: _gh_sess=%2Bc%2B18%2FPYIAroAzRxoZSOP0EK6q3zLl%2Fw9yimk1CDTkGtWsEZcfghlcP%2F7NDdxgKo%2BIdcUD4SevfG2PYZWyVShQ2PWvCwfWQbKATI7KMuh3A3YLxZW8SJHZclAuhg6eOU0j%2B0afbHn%2BoyE%2FmTbC166qKQhjBKHCD5pt5op6cmDddPYjGG4XX5N775yZyYsWUPrP%2BSZnJhwFPXfmJ86ynPu4XPsYN5x728fP1HSivwbp0CIzgl0zGUlG2ziVFcYxbtIuRa0M0DRkSscSL2fszArw%3D%3D--jlSzKYDOE2xOv1CE--KdOoNFkZQy6%2FTaZmVNlOPA%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.1723283029.1753847294; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 03:48:14 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 03:48:14 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: 9044:A6962:11B302C:1591A47:688995FE
HTTP/2 200
date: Wed, 30 Jul 2025 03:48:15 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"89ccba489d919f56e04a3b35067ab7bb"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
x-github-request-id: 9044:A6962:11B3058:1591A6C:688995FE
Mapped SuperClass Support · Impetus/kundera Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
Notifications
You must be signed in to change notification settings - Fork 232
Mapped SuperClass Support
Devender Yadav edited this page Jul 16, 2018
·
15 revisions
Mapped super class is used to define state and mapping information that is common to multiple entity classes.For further details refer github#56
In order to become a stronger JPA provider and enable support of traditional normalized schema Kundera has also enabled support of Mapped Superclasses and Inheritance strategy.
Sample Transaction use case
A sample class annotated with @MappedSuperclass
@MappedSuperclass
public class Transaction
{
@Id
private String txId;
@Column
private String bankIdentifier;
@Column
private Date transactionDt;
CreditTransaction :
@Entity
@Table(name = "TRNX_CREDIT")
@AttributeOverride(name="bankIdentifier",column= @Column(name="CREDIT_BANK_IDENT"))
@IndexCollection(columns={@Index(name="bankIdentifier")})
public class CreditTransaction extends Transaction
{
@Column
private Integer amount;
@Column
@Enumerated(EnumType.STRING)
private Status txStatus;
DebitTransaction :
@Entity
@AttributeOverride(name="bankIdentifier",column= @Column(name="CREDIT_BANK_IDENT"))
@IndexCollection(columns={@Index(name="bankIdentifier")})
public class DebitTransaction extends Transaction
{
@Column
private Integer amount;
@Column
@Enumerated(EnumType.STRING)
private Status txStatus;
Sample Transaction Use Case : A sample class annotated with @Entity .This class is inherited by transaction type entities and depending on inheritance strategy the data is persisted accordingly.
@Entity
@Table(name = "TRNX")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "tx_type")
public class Transaction extends AbstractTransaction
{
@Column
private String bankIdentifier;
CreditTransaction :
@Entity
@Table(name = "TRNX_CREDIT")
@DiscriminatorValue(value = "CREDIT")
@AttributeOverride(name="bankIdentifier",column= @Column(name="CREDIT_BANK_IDENT"))
@IndexCollection(columns={@Index(name="bankIdentifier")})
public class CreditTransaction extends Transaction
{
@Column
private Integer amount;
@Column
@Enumerated(EnumType.STRING)
private Status txStatus;
Debit Transaction :
@Entity
@DiscriminatorValue(value="DEBIT")
@AttributeOverrides(value = { @AttributeOverride(name = "txId", column = @Column(name = "DEBIT_ID")),
@AttributeOverride(name = "bankIdentifier", column = @Column(name = "DEBIT_BANK_IDENT")),
@AttributeOverride(name = "transactionDt", column = @Column(name = "TX_DT")) })
public class DebitTransaction extends Transaction
{
@Column
private Integer amount;
Entity Transaction :
CreditTransaction creditTx = new CreditTransaction();
creditTx.setTxId("credit1");
creditTx.setTxStatus(Status.APPROVED);
creditTx.setBankIdentifier("sbi");
creditTx.setTransactionDt(new Date());
creditTx.setAmount(10);
em.persist(creditTx);
waitThread(wait);
DebitTransaction debitTx = new DebitTransaction();
debitTx.setTxId("debit1");
debitTx.setTxStatus(Status.PENDING);
debitTx.setTransactionDt(new Date());
debitTx.setBankIdentifier("sbi");
debitTx.setAmount(-10);
em.persist(debitTx);
waitThread(wait);
em.clear();
String creditQuery = "Select c from CreditTransaction c where c.bankIdentifier = 'sbi'";
Query query = em.createQuery(creditQuery);
List<CreditTransaction> results = query.getResultList();
Assert.assertEquals(1, results.size());
Assert.assertEquals("credit1", results.get(0).getTxId());
em.clear();
String debitQuery = "Select d from DebitTransaction d where d.bankIdentifier = 'sbi'";
query = em.createQuery(debitQuery);
List<DebitTransaction> debitResults = query.getResultList();
Assert.assertEquals(1, debitResults.size());
Assert.assertEquals("debit1", debitResults.get(0).getTxId());
- Mapped Superclass and inheritance Strategy will enable the traditional(normalized) relational database migration to NoSQL.
- Enable join table support
-
Datastores Supported
- Releases
-
Architecture
-
Concepts
-
Getting Started in 5 minutes
-
Features
- Object Mapper
- Polyglot Persistence
- Queries Support
- JPQL (JPA Query Language)
- Native Queries
- Batch insert update
- Schema Generation
- Primary Key Auto generation
- Transaction Management
- REST Based Access
- Geospatial Persistence and Queries
- Graph Database Support
-
Composite Keys
-
No hard annotation for schema
-
Support for Mapped superclass
-
Object to NoSQL Data Mapping
-
Cassandra's User Defined Types and Indexes on Collections
-
Support for aggregation
- Scalar Queries over Cassandra
- Connection pooling using Kundera Cassandra
- Configuration
-
Kundera with Couchdb
-
Kundera with Elasticsearch
-
Kundera with HBase
-
Kundera with Kudu
-
Kundera with RethinkDB
-
Kundera with MongoDB
-
Kundera with OracleNoSQL
-
Kundera with Redis
-
Kundera with Spark
-
Extend Kundera
- Sample Codes and Examples
-
Blogs and Articles
-
Tutorials
* Kundera with Openshift
* Kundera with Play Framework
* Kundera with GWT
* Kundera with JBoss
* Kundera with Spring
-
Performance
-
Troubleshooting
-
FAQ
- Production deployments
- Feedback
Clone this wiki locally
You can’t perform that action at this time.