JPQL Update Query
31,144
I was able to rewrite the query that I needed:
UPDATE LocalizedText L SET L.content = :content WHERE EXISTS (SELECT T FROM QuestionGroupText T WHERE T.localizedText.id = L.id AND T.generatedId = :generatedId)
Author by
user2219247
Updated on November 07, 2020Comments
-
user2219247 over 3 years
I have an entity like this:
@Entity @Table(name = "QUESTION_GROUP_TEXT") @NamedQueries({ @NamedQuery( name = EntityUtils.NamedQuery.UPDATE_QUESTION_GROUP_TEXT, query = "UPDATE QuestionGroupText T SET T.localizedText.content = :content WHERE T.generatedId = :generatedId") }) public class QuestionGroupText implements Serializable { @Column(name = "GENERATED_ID", nullable = false, unique = true) private String generatedId = generateId(); @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL) @JoinColumn(name = "LOCALIZED_TEXT_ID", nullable = false) private LocalizedText localizedText; //Getters and setters }
This query:
UPDATE QuestionGroupText T SET T.localizedText.content = :content WHERE T.generatedId = :generatedId
does not work, it throws:Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set CONTENT='Question Label' where GENERATED_ID='AD78F9B5E2A146D9AB9D94096DA835B' at line 1
There must be something wrong with this part of the query:
T.localizedText.content
, is there any way I can change it to make this work?