SpringJPA连接两个实体
我正在努力使用jpa Crudepository接口连接两个实体模型。我不知道如何映射两个实体模型并在@query注释中编写查询。这些是我的实体类。 我想执行此查询“从出租车司机映射中选择dppd.payment\u plan\u id、dppd.attribute\u值、dppd.attribute\u id作为tdm加入司机\u payment\u plan\u详细信息作为dppd.payment\u plan上的dppd” }SpringJPA连接两个实体,spring,jpa,entity,Spring,Jpa,Entity,我正在努力使用jpa Crudepository接口连接两个实体模型。我不知道如何映射两个实体模型并在@query注释中编写查询。这些是我的实体类。 我想执行此查询“从出租车司机映射中选择dppd.payment\u plan\u id、dppd.attribute\u值、dppd.attribute\u id作为tdm加入司机\u payment\u plan\u详细信息作为dppd.payment\u plan上的dppd” } }谢谢你们给我展示了正确的路径,这是我的代码 @Getter
}谢谢你们给我展示了正确的路径,这是我的代码
@Getter
@Setter
@ToString
@Table(name = "taxi_driver_mapping")
@Entity
@NoArgsConstructor
public class TaxiDriverMapping
{
@Column(name = "mapping_id")
@Id
private Long mappingId;
@Column(name = "mapping_driverid")
private Long mappingDriverId;
@Column(name = "mapping_taxi_model_id")
private String mappingTaxiModelId;
@Column(name = "mapping_status")
private String mappingStatus;
@Column(name = "mapping_payment_plan_id")
private Long mappingPaymentPlanId;
@OneToMany(mappedBy = "taxiDriverMapping")
private List<DriverPaymentPlanDetails> driverPaymentPlanDetails;
如果实体没有任何关联,则不能加入它们。阅读有关JPA的教程、书籍或Hibernate文档,并了解关联。它们是JPA的一个功能部分,你需要理解。每次您在一个实体中拥有另一个实体的ID时,您都犯了错误。然后,一旦您了解了关联,请阅读JPQL的文档,“JPA”没有XXXRepository。这就是“SpringDataJPA”,它不是JPAAPI。@JBNizet这不是真的:好的,你可以。你应该吗?JPA的全部要点是拥有一个实体图,并能够在该图中导航。只有孤立的实体ID到处都不是JPA是如何使用,使事情比必要更困难,并显示缺乏理解。我同意@ JBNizet,你不应该用这种方式,并请考虑链接它们,以实现这一点。
@Getter
@Setter
@ToString
@Table(name = "taxi_driver_mapping")
@Entity
@NoArgsConstructor
public class TaxiDriverMapping
{
@Column(name = "mapping_id")
@Id
private Long mappingId;
@Column(name = "mapping_driverid")
private Long mappingDriverId;
@Column(name = "mapping_taxi_model_id")
private String mappingTaxiModelId;
@Column(name = "mapping_status")
private String mappingStatus;
@Column(name = "mapping_payment_plan_id")
private Long mappingPaymentPlanId;
@Getter
@Setter
@ToString
@Table(name = "taxi_driver_mapping")
@Entity
@NoArgsConstructor
public class TaxiDriverMapping
{
@Column(name = "mapping_id")
@Id
private Long mappingId;
@Column(name = "mapping_driverid")
private Long mappingDriverId;
@Column(name = "mapping_taxi_model_id")
private String mappingTaxiModelId;
@Column(name = "mapping_status")
private String mappingStatus;
@Column(name = "mapping_payment_plan_id")
private Long mappingPaymentPlanId;
@OneToMany(mappedBy = "taxiDriverMapping")
private List<DriverPaymentPlanDetails> driverPaymentPlanDetails;
@Getter
@Setter
@Entity
@ToString
@Table(name = "driver_payment_plan_details")
@NoArgsConstructor
public class DriverPaymentPlanDetails
{
@Id
@Column(name = "id")
private int id ;
@Column(name = "payment_plan_id")
private long paymentPlanId;
@Column(name = "attribute_id")
private int attributeId;
@Column(name = "attribute_value")
private float attributeValue;
@ManyToOne()
@JoinColumn(name="payment_plan_id",insertable = false,updatable = false)
private TaxiDriverMapping taxiDriverMapping;
}