Java 使用两个外键创建实体类-Spring JPA
如何为下表创建实体类,下表有两个不同表的外键Java 使用两个外键创建实体类-Spring JPA,java,spring-data-jpa,hibernate-mapping,Java,Spring Data Jpa,Hibernate Mapping,如何为下表创建实体类,下表有两个不同表的外键 CREATE TABLE `flights_info` ( `airline_id` bigint(20) NOT NULL, `flight_infoid` bigint(20) NOT NULL, UNIQUE INDEX `UK_mnghyk14c0ufcb2gs2k6fab40`(`flight_infoid`) , INDEX `FKm5m2579nqtr1wele0bimvme8m`(`airline_id`) ,
CREATE TABLE `flights_info` (
`airline_id` bigint(20) NOT NULL,
`flight_infoid` bigint(20) NOT NULL,
UNIQUE INDEX `UK_mnghyk14c0ufcb2gs2k6fab40`(`flight_infoid`) ,
INDEX `FKm5m2579nqtr1wele0bimvme8m`(`airline_id`) ,
CONSTRAINT `FKlda61sltnw69kxw7b0gx6sj5s` FOREIGN KEY (`flight_infoid`) REFERENCES `flight_info` (`flight_infoid`) ON DELETE RESTRICT ON UPDATE RESTRICT,
CONSTRAINT `FKm5m2579nqtr1wele0bimvme8m` FOREIGN KEY (`airline_id`) REFERENCES `airline_info` (`airline_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
);
我的实体类:
@Entity
public class FlightsInfo {
@Id
@JoinTable(name="AirlineInfo", joinColumns=@JoinColumn(name="airline_id"))
private AirlineInfo airline_id;
@OneToOne
@JoinColumn(name="flight_infoid")
private FlightInfo flight_infoid;
}
问题是您的表没有主键。因此很难将
@Id
注释指向右边的列。但是,JPA接受不带PKs的表,只要您有一个唯一的列:
幸运的是,您在flight\u infoid
列上有一个唯一的约束,因此您应该尝试在那里指向您的@Id
注释