0

mysqlテーブルに2つのエンティティを一度に保存する必要があります。以下は2つのエンティティです 1つはUserEntityで、もう1つはUserDetailsEntityです。外部キーとしてUserDetailsテーブルにUserId列を挿入したい。 UserIdはUserDetailsテーブルに挿入されていません。このPlzで私を助けてください。外部キー関係:UniDirectionalアノテーションハイバネート

UserEntity.java

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "UserId") 
private int id; 

@Column(name = "UserLogin", length = 15, unique = true) 
private long phNumber; 

@Column(name = "Password", length = 100) 
private String password; 

@Column(name = "UserType", length = 20) 
private String userType; 

@Column(name = "PromoCode", length = 20) 
private String promoCode; 

@Column(name = "FirstName", length = 30) 
private String firstName; 

@Column(name = "LastName", length = 30) 
private String lastName; 

@Column(name = "RoleId") 
private int roleId; 

@Column(name = "isActive") 
private int isActive; 

@Column(name = "isTestUser") 
private int isTestUser; 

@Column(name = "FcmToken", length = 100) 
private String fcmToken; 

@OneToOne(cascade = CascadeType.ALL) 
@JoinColumn(name = "UserId", unique = true,insertable = true, updatable = true) 
//@ForeignKey(name = "UserId") 
private UserDetailsEntity userDetailsEntity; 

//ここにゲッターとセッター

UserDetailsEntity.java

@Id 
@GeneratedValue(strategy = GenerationType.AUTO) 
@Column(name = "UserDetailsId") 
private int id; 


@Column(name="UserId", unique=true, nullable=false) 
@GeneratedValue(generator="gen") 
@GenericGenerator(name="gen", strategy="foreign", parameters={@Parameter(name="property", value="uid")})  
private int userId; 

@Column(name ="AadhaarCardNumber" ,length = 12) 
private long aadhaarNumber; 

@Column(name="", length = 50) 
private String emailId; 

@Column(name="Address1" , length = 30) 
private String address1; 

@Column(name="Address2", length = 30) 
private String address2; 

@Column(name="CityId", length = 10) 
private int cityId; 

@Column(name="StateId", length = 10) 
private int stateId; 

@Column(name="CountryId", length = 10) 
private int countryId; 

@Column(name="Latitude", length = 60) 
private String lat; 

@Column(name="Longitude", length = 60) 
private String lng; 

@Column(name="MobileNumber1", length = 15) 
private long mobileNumber1; 

@Column(name="MobileNumber2", length = 15) 
private long mobileNumber2; 

@Column(name="DOB", length = 15) 
private Date dob; 

@OneToOne 
private UserEntity userEntity; 

//ゲッターとセッター

+0

私自身が解決策を見つけました。私に更新させてください。 –

答えて

0

私自身が解決策を見つけました。私に更新させてください。親テーブルの注釈OneToOneを記述するだけです(ここはUsersです)。 UserDetailsのIDである子テーブルは親テーブルに格納されます。 @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY) @JoinColumn(name = "UserDetailsId", nullable = false) private UserDetailsEntity userDetailsEntity;
私の要件は完了し、UserDetailsEntityとは関係ありません。

関連する問題