Я создал 2 таблицы с отображением OnetoOne и общим первичным ключом, и я пытался отправить данные в эти таблицы с помощью метода двух записей, но получаю сообщение об ошибке:
попытался назначить идентификатор из нулевогосвойство «один к одному» [com.maciejg.School02.model.LoginAndPassword.studentsTeachersEntity]
Entity:
@Entity
@Table(name="usersinfo")
public class StudentsTeachersEntity {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@Column(name = "username")
private String username;
@Column(name = "pesel")
private String pesel;
@Column(name = "phone_number")
private String phoneNumber;
@Column(name = "address")
private String address;
@Column(name = "email")
private String email;
@OneToOne(mappedBy = "studentsTeachersEntity", cascade =
CascadeType.ALL)
private LoginAndPassword loginAndPassword;
//getters, setters
@Entity
@Table(name="userandpassword")
public class LoginAndPassword {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long username_id;
@Column(name = "username")
private String username;
@Column(name = "user_password")
private String user_password;
@Column(name= "grade")
private String grade;
@Column(name= "comment")
private String comment;
@OneToOne
@JoinColumn
@MapsId
private StudentsTeachersEntity studentsTeachersEntity;
Угловой класс:
export class AddUserComponent implements OnInit {
model: StudentsTeachers = {
id: 0,
name: '',
surname: '',
username: '',
pesel: '',
phoneNumber:'',
address:'',
email:''
};
login: LoginAndPassword = {
id:0,
username:'',
user_password:'',
grade:'',
comment:''
};
constructor(private apiService: ApiService) { }
ngOnInit() {
}
send(){
this.apiService.addUser(this.model).subscribe(
res => {
alert("User added");
//location.reload();
},
err => {
alert("Error while sending value");
}
);
}
sendToLoginPasswordEntity(){
this.apiService.addLoginAndPassword(this.login).subscribe(
res => {
// location.reload(); //reload page
alert("OK")
location.reload();
},
err => {
alert("Sth go wrong");
}
);
}
Метод отправки (() работает и добавляет значение в таблицу usersinfo, но второй метод вызывает ошибку, описанную в заголовке.
Части кода формы HTML:
<form #f="ngForm" (ngSubmit)="f.form.valid && sendToLoginPasswordEntity(); send()" >
<div class="field">
<label class="label">Pesel</label>
<div class="control">
<input class="input" name="pesel" placeholder="pesel"
[(ngModel)]="model.pesel"
[(ngModel)]="login.user_password"
#pesel="ngModel"
[ngClass]="{'is-danger': f.submitted && pesel.invalid}"
required />