मैपिंग इस प्रकार होनी चाहिए:
@Entity
@Table(name = "MY_SCHEMA.MY_TABLE_A")
@Component
public class FirstClass implements Serializable {
@Id
@SequenceGenerator(name = "MY_SEQ", sequenceName = "MY_SCHEMA.MY_SEQ", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQ")
@Column(name = "MY_ID")
private Long myId;
@OneToOne(mappedBy = "firstClass", cascade = CascadeType.ALL)
private SecondClass secondClass;
}
@Entity
@Table(name = "MY_SCHEMA.MY_TABLE_B")
@Component
public class SecondClass implements Serializable {
@Id
@JoinColumn(name = "MY_ID", referencedColumnName = "MY_ID")
@OneToOne
private FirstClass firstClass;
}
कैस्केड विकल्प सेट के साथ आपको केवल फर्स्टक्लास को बचाने के लिए कॉल करने की आवश्यकता होगी:संबंधित सेकेंडक्लास स्वचालित रूप से जारी रहेगा - यह मानते हुए कि आप अपने इन-मेमोरी मॉडल में रिलेशनशिप के दोनों किनारों को सेट करते हैं, यानी
firstClass.setSecondClass(secondClass);
secondClass.setFirstClass(firstClass);