Я новичок в весенней спячке и ищу вашу поддержку. Я пытаюсь выполнить запрос к моей базе данных, о котором я сообщаю ниже. ЗАПРОС, КОТОРЫЙ Я ДОЛЖЕН ВЫПОЛНИТЬ, - СЛЕДУЮЩИЙ
CREATE TABLE P1(
P1_ID INT NOT NULL GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1),
DESCRIPTION VARCHAR(100) NOT NULL,
PRIMARY KEY (P1_ID)
);
CREATE TABLE P2(
P2_ID INT NOT NULL GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1),
DESCRIPTION VARCHAR(250) NOT NULL,
PRIMARY KEY (P2_ID)
);
CREATE TABLE LINK(
P2_ID int not null,
P1_ID int not null,
CONSTRAINT P1_FK FOREIGN KEY (P1_ID ) REFERENCES P1 (P1_ID ) ON DELETE CASCADE,
CONSTRAINT P2_FK FOREIGN KEY (P2_ID ) REFERENCES P2 (P2_ID ),
PRIMARY KEY(P2_ID , P1_ID )
);
THE QUERY I NEED TO EXECUTE is the FOLLOWING
SELECT P2.* FROM P2 join LINK on P2.P2_ID=LINK.P2_ID join P1 on LINK.P1_ID = 1
ЗАПРОС РАБОТАЕТ ОЧЕНЬ ХОРОШО, НО Я ДОЛЖЕН ПЕРЕВОДИТЬ СВОЮ СТОРОНУ КОДА с помощью @query аннотация для репозитория jpa ... Я НЕ очень хорош в этой области, поэтому я прошу вас о поддержке МОЖЕТЕ ЛИ ВЫ ПОМОЧЬ МНЕ?
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "P1")
public class P1Entity implements Serializable{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "P1_ID",insertable = false, updatable = false)
@Id
private Integer P1ID;
@Column(name = "description")
private String description;
@OneToMany(mappedBy = "p1Entity")
private List<P2Entity> p2Entities;
@OneToMany(mappedBy = "p1")
private List<LinkEntity> p1LinkEntity;
}
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "P2")
public class P2Entity implements Serializable{
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "P2_ID",insertable = false, updatable = false)
@Id
private Integer P2ID;
@Column(name = "description")
private String description;
@ManyToOne
private P1Entity p1Entity;
@OneToMany(mappedBy = "p2")
private List<LinkEntity> p2LinkEntity;
}
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "LINK")
public class Link implements Serializable {
@EmbeddedId
private LinkEmbeddable privacyProductId;
@ManyToOne
private P1Entity p1;
@ManyToOne
private P2Entity p2;
}
@Embeddable
@Data
public class LinkEmbeddable extends LinkKey{
public LinkEmbeddable () {
super();
}
public LinkEmbeddable (Integer P1ID, Integer P2ID) {
super(P1ID, P2ID);
}
}
@Embeddable
@Data
@NoArgsConstructor
@AllArgsConstructor
@MappedSuperclass
public class LinkKeyimplements Serializable{
/**
*
*/
private static final long serialVersionUID = -3141320281767575754L;
@Column(name = "P2_ID",insertable = false, updatable = false)
private Integer P2ID;
@Column(name = "P1_ID",insertable = false, updatable = false)
private Integer P1ID;
}