2
我有一個簡單的JPA實體(Hibernate實現):Hibernate和SQL連接與預先抓取關係類型
User.java:
@Entity
@Table(name = "USER")
public class User {
@OneToOne(optional=false)
@JoinColumn(name = "USER_STATUS_ID", nullable = false)
private UserStatus userStatus;
UserStatus:
@Entity
@Table(name = "USER_STATUS")
public class UserStatus {
@Column(name = "name", nullable = false)
private String name;
以及正在生成查詢實體的查詢如下所示:
...from user left outer join user_status on...
我的問題是:爲什麼休眠執行此外連接,而不是內部聯接(因爲我已經告訴它,它是不能爲空或可選)。有什麼辦法強制內連接?
謝謝。
什麼是UserStatus的映射? – Thierry 2013-03-14 15:29:26
我用userStatus映射更新了問題。這裏沒有任何內容,但是對於幾個字符串,沒有任何對象引用。 – StuPointerException 2013-03-14 15:38:34
對不起,休眠版本和查詢獲取數據的代碼可能也是有意義的。你確定它是生成你的SQL的休眠嗎? Hibernate的SQL看起來更像是:...來自USER this_內部加入USER_STATUS userstatus1_在this_.USER_STATUS_ID = userstatus1_.ID ...對於我來說,userStatus是默認提取的(對於任何* ToOne映射)和內部聯接。 – Thierry 2013-03-14 15:52:45