在Hibernate中,進行連接查詢時,如果使用join語句,就容易產生標題所示的錯誤。
比如from Content o left join Mcp mcp where o.mcp.id=mcp.id and mcp.id=2
正確的做法應該是在A中建立private Mcp mcp,並映射,
然后通過from Content o left join o.mcp mcp where mcp.id=2
奇怪吧,這么羅嗦。其實大可不必這樣連接操作,只要from Content where mcp is null or mcp.id=2即可
如果在Content對象中建立mcp(對象)字段的話,就用不了join。
這時只能用from Content o,Mcp mcp where o.mcpId is null or (o.mcpId=mcp.id and mcp.id=2)
這時的mcpId是一個與Mcp表中id對應的整型
結論: 盡量不用join,費力不討好。
