Khurelkhuyag M. (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
) *created* an issue
Hibernate ORM (
https://hibernate.atlassian.net/browse/HHH?atlOrigin=eyJpIjoiYTVlNTlhYzZj...
) / Bug (
https://hibernate.atlassian.net/browse/HHH-16503?atlOrigin=eyJpIjoiYTVlNT...
) HHH-16503 (
https://hibernate.atlassian.net/browse/HHH-16503?atlOrigin=eyJpIjoiYTVlNT...
) @Formula annotation doesn't generate root entity alias on where part. (
https://hibernate.atlassian.net/browse/HHH-16503?atlOrigin=eyJpIjoiYTVlNT...
)
Issue Type: Bug Affects Versions: 6.1.7 Assignee: Unassigned Attachments:
hibernate-formula-problem.tar.gz Components: hibernate-core Created: 23/Apr/2023 23:07 PM
Environment: Java 17, Hibernate 3.9.0, Hibernate 6.1.7 Priority: Major Reporter:
Khurelkhuyag M. (
https://hibernate.atlassian.net/secure/ViewProfile.jspa?accountId=557058%...
)
This is my minimized sample entity. When I try to query with “ SELECT e FROM Shift e “ HQL
query. It generates below SQL query.
@Entity
@Table(name = "shift" )
public class Shift {
@EmbeddedId
private PK pk;
@Column(insertable = false , updatable = false )
private LocalDate day;
@Column(insertable = false , updatable = false )
private Integer number;
@Formula("""
(SELECT json_arrayagg(
json_object(
"day" , sh.day,
"number" , sh.number,
"value" , sh.value
)
)
FROM shiftData sh WHERE sh.day = day AND sh.number = number)
""")
private String data;
@Embeddable
public static class PK implements Serializable {
@Column(name = "day" )
private LocalDate day;
@Column(name = "number" )
private Integer number;
}
}
select
s1_0. day ,
s1_0. number ,
( SELECT
json_arrayagg( json_object( " day " , sh. day , "
number " , sh. number , " value " , sh. value ) )
FROM
shiftData sh
WHERE
sh. day = day
AND sh. number = s1_0. number )
from
shift s1_0
Problematic part is:
WHERE
sh. day = day
AND sh. number = s1_0. number )
This should be:
WHERE
sh. day = s1_0. day
AND sh. number = s1_0. number )
Without the alias, this selects unintended rows.
PS: Example project attached.
(
https://hibernate.atlassian.net/browse/HHH-16503#add-comment?atlOrigin=ey...
) Add Comment (
https://hibernate.atlassian.net/browse/HHH-16503#add-comment?atlOrigin=ey...
)
Get Jira notifications on your phone! Download the Jira Cloud app for Android (
https://play.google.com/store/apps/details?id=com.atlassian.android.jira....
) or iOS (
https://itunes.apple.com/app/apple-store/id1006972087?pt=696495&ct=Em...
) This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100223- sha1:77dfe11 )