JPA JAVA EE
@Embedded annotation is used in the entity class. It is placed on a persistent field or property to link to an embeddable class. The embeddable class must be annotated with @Embeddable.
package com.logicbig.example;import javax.persistence.Embedded;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;@Entitypublic class EntityA { @Id @GeneratedValue private int id; @Embedded private ClassA classARef; public ClassA getClassARef() { return classARef; } public void setClassARef(ClassA classARef) { this.classARef = classARef; } @Override public String toString() { return "EntityA{" + "id=" + id + ", classARef=" + classARef + '}'; }}
package com.logicbig.example;import javax.persistence.Embeddable;import javax.persistence.Embedded;@Embeddablepublic class ClassB { private String myStrB; @Embedded private ClassA classARef; public String getMyStrB() { return myStrB; } public void setMyStrB(String myStrB) { this.myStrB = myStrB; } public ClassA getClassARef() { return classARef; } public void setClassARef(ClassA classARef) { this.classARef = classARef; } @Override public String toString() { return "ClassB{" + "myStrB='" + myStrB + '\'' + ", classARef=" + classARef + '}'; }}
package com.logicbig.example;import javax.persistence.*;@Entitypublic class EntityA { @Id @GeneratedValue private int id; @AttributeOverrides({ @AttributeOverride(name = "myStr", column = @Column(name = "MY_STR_COL1")), @AttributeOverride(name = "myInt", column = @Column(name = "MY_INT_COL1")) }) @Embedded private ClassA classARef; @AttributeOverrides({ @AttributeOverride(name = "myStr", column = @Column(name = "MY_STR_COL2")), @AttributeOverride(name = "myInt", column = @Column(name = "MY_INT_COL2")) }) @Embedded private ClassA classARef2; public ClassA getClassARef() { return classARef; } public void setClassARef(ClassA classARef) { this.classARef = classARef; } public ClassA getClassARef2() { return classARef2; } public void setClassARef2(ClassA classARef2) { this.classARef2 = classARef2; } @Override public String toString() { return "EntityA{" + "id=" + id + ", classARef=" + classARef + ", classARef2=" + classARef2 + '}'; }}
package com.logicbig.example;import javax.persistence.*;@Entitypublic class EntityA { @Id @GeneratedValue private int id; @Embedded @AttributeOverrides({ @AttributeOverride(name = "myStr", column = @Column(name = "MY_STR_COL1")) }) @AssociationOverrides({ @AssociationOverride( name = "entityBRef", joinColumns = @JoinColumn(name = "EntityAB_JOIN1")) }) private ClassA classARef; @Embedded @AttributeOverrides({ @AttributeOverride(name = "myStr", column = @Column(name = "MY_STR_COL2")) }) @AssociationOverrides({ @AssociationOverride( name = "entityBRef", joinColumns = @JoinColumn(name = "EntityAB_JOIN2")) }) private ClassA classARef2; public ClassA getClassARef() { return classARef; } public void setClassARef(ClassA classARef) { this.classARef = classARef; } public ClassA getClassARef2() { return classARef2; } public void setClassARef2(ClassA classARef2) { this.classARef2 = classARef2; } @Override public String toString() { return "EntityA{" + "id=" + id + ", classARef=" + classARef + ", classARef2=" + classARef2 + '}'; }}