我有两个表,flight
并且ticket
和类Flight
和Ticket
。One Flight可以有很多门票,所以有一个外键flight_id
。我想在我的数据库中写下Ticket
flight_id
所选的表格Flight
。
我flight_id
在这里是1
这是我的数据库:
在http://localhost:8080/api/tickets
我看不到我的外键flightId
,我不确定这是否正常。顺便说一句,我将这些数据直接添加到我的数据库(而不是通过我的网络应用程序)。
在这里,我可以添加name
和surname
我的桌前Ticket
通过我的web应用程序,但我也想补充flightId
像外键我的表Ticket
。我flight_id
在这里是1。http://localhost:4200/ticket/1
我发布了这样的JSON,但收到错误 400 - Bad request
这是我的完整错误:
创建-ticket.component.html:
<div [hidden]="submitted" style="width: 300px;">
<form (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="name">Name</label>
<input type="text" class="form-control" id="name" required [(ngModel)]="ticket.name" name="name">
</div>
<div class="form-group">
<label for="surname">Surname</label>
<input type="text" class="form-control" id="surname" required [(ngModel)]="ticket.surname" name="surname">
</div>
<button type="submit" class="btn btn-success">Submit</button>
</form>
</div>
<div [hidden]="!submitted">
<h4>Submitted!</h4>
<button class="btn btn-success" (click)="newTicket()">Submitted</button>
创建-ticket.component.ts:
export class CreateTicketComponent implements OnInit {
ticket: Ticket = new Ticket();
flight: Flight = new Flight();
submitted = false;
flightId: number;
constructor(private ticketService: TicketService, private flightService: FlightService,
private router: Router, private route: ActivatedRoute) {
}
ngOnInit() {
this.route.params.subscribe(params => { this.flightId = params['flightId']; });
this.flightService.getFlight(this.flightId).subscribe(t => this.flight = t);
}
newTicket(): void {
this.submitted = false;
}
save() {
this.ticket.flightId = this.flight.flightId;
this.ticketService.createTicket(this.ticket)
.subscribe(data => console.log(data), error => console.log(error));
this.ticket = new Ticket();
}
onSubmit() {
this.submitted = true;
this.save();
}
}
create.service.ts:
export class TicketService {
private baseUrl = 'http://localhost:8080/api/tickets';
constructor(private http: HttpClient) {
}
createTicket(ticket: Object): Observable<Object> {
return this.http.post(`${this.baseUrl}` + `/create`, ticket);
}
}
ticket.ts:
export class Ticket {
ticketId: number;
place: string;
customerId: number;
flightId: number;
name: string;
surname: string;
}
flight.ts:
import {Time} from '@angular/common';
export class Flight {
flightId: number;
departureCity: string;
destinationCity: string;
price: number;
flightDuration: number;
transferNumber: number;
departureDate: Date;
departureTime: Time;
tickets: Ticket[];
}
export class Ticket {
ticketId: number;
place: number;
customerId: number;
flightId: number;
}
我Ticket
的Spring Boot 课程。也许我在这里private Flight flight;
遇到了问题:但是当我改变它时,private int flight;
我得到了一个新的错误@OneToOne or @ManyToOne on Ticket.flight references an unknown entity: int
@Entity
@Table(name = "ticket")
public class Ticket {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int ticketId;
@Column(name = "place")
private int place;
@Column(name = "name")
private String name;
@Column(name = "surname")
private String surname;
@ManyToOne
@JoinColumn(name = "flightId")
@JsonBackReference("flight")
private Flight flight;
public Ticket() {
}
发布于 2018-12-17 10:22:11
门票上没有flightId。只是映射ManyToOne不能解决这个问题。你仍然需要一个列flightId
https://stackoverflow.com/questions/-100006299
复制相似问题