This is my TBL_PRODUCTS table structure is
PRODUCT_ID pk PRODUCT_NAME CATEGORY_NAME SUBCATEGORY_NAME BRAND_NAME
PRODUCT_ID pk BLUETOOTH CAMERA
PRODUCT_ID pk NO_OF_CHANNELS WOOFERS
@Entity @Table(name="TBL_PRODUCTS") public class TblProducts implements Serializable { @Id @Column(name="PRODUCT_ID") private BigDecimal productId; @Column(name="PRODUCT_NAME") private String productName; @Column(name="CATEGORY_NAME") private String categoryName; @Column(name="SUBCATEGORY_NAME") private String subcategoryName; @Column(name="BRAND_NAME") private String brandName; @OneToOne(fetch=FetchType.LAZY,mappedBy="tblProducts") private TblCellphone tblCellphone; @OneToOne(fetch=FetchType.LAZY,mappedBy="tblProducts") private TblTelevision tblTelevision; } ------------------------------------------------------------------------------ @Entity @Table(name="TBL_CELLPHONE") public class TblCellphone implements Serializable { @Id @Column(name="PRODUCT_ID") private BigDecimal productId; private String bluetooth; private String camera; OneToOne(optional=false) @JoinColumn(name="PRODUCT_ID") private TblProducts tblProducts; } ----------------------------------------------------------------------- @Entity @Table(name="TBL_TELEVISION") public class TblTelevision implements Serializable { @Id @Column(name="PRODUCT_ID") private BigDecimal productId; @Column(name="NO_OF_CHANNELS") private String noOfChannels; private String woofers; @OneToOne(optional=false) @JoinColumn(name="PRODUCT_ID") private TblProducts tblProducts; }