Java 異常彙總

org.hibernate.PropertyValueException: not-null property references a null or transient value

字面意思:一個不允許爲Null的屬性引用了一個爲Null的或者無效的值。
原因:在*.hbm.xml中的<property name="ProjPortfolioID" column="ProjPortfolioID" type="big_decimal" not-null="true" length="10" /> 中,not-null="true",這說明屬性ProjPortfolioID不允許爲空,而在ActionForm中未給他賦值,則就爲空,所以就會報錯!

Path expected for join!

來源在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,費力不討好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章