Reputation: 481
I have two below entity. One is MatchTable another is MatchLog.
@Entity
public class MatchTable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@ManyToOne
private Integer primaryID;
@ManyToOne
private Integer suspectedID;
@Column(nullable=false)
private Integer status;
//getter and setter
}
@Entity
public class MatchLog {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", updatable = false, nullable = false)
private Long id;
@OneToOne
private MatchTable referenceID;
@Column(nullable=false)
private Long primaryID;
@Column(nullable=false)
private Long suspectedID;
@Column(nullable=false)
private Integer status;
//getter and setter
}
If status of MatchTable change,these row will be inserted into MatchLog. I have tried with the below JPQL query.
@Query("INSERT INTO MatchLog (referenceID.id,primaryID,suspectedID,status) SELECT id,primaryID,suspectedID,status from MatchTable where (primaryID = :ID or suspectedID = :ID)")
int updateMatchLogTable(@Param("ID") long ID);
But this JPQL query is not working. Please suggest me what will be the JPQL query to insert change rows from MatchTable to MatchLog.
Upvotes: 0
Views: 271
Reputation: 164
Unless I'm mistaken, JPA does not support "insert into select". You can change as native query.
Upvotes: 1