2010-10-03 93 views
2

我面對空指針異常休眠:空指針execption

org.hibernate.dialect.function.CastFunction.render(CastFunction.java:11)​​

休眠代碼: (「選擇DATE_FORMAT (str_to_date(form.dobDate,'%Y%m%d'),'%M(%Y)')as Month「);

+1

每個異常有兩個重要的特點 - 消息和堆棧跟蹤。你已經省略了第二名。另外 - 你粘貼的是一個查詢,而不是'休眠代碼'。 – Bozho 2010-10-03 10:08:45

+0

在我看來,dobDate爲null,但是Bozho說:沒有堆棧跟蹤,真的很難理解正在發生的事情。 – 2010-10-03 10:10:24

+0

有堆棧跟蹤。顯示java.lang.NullPointerException \t org.hibernate.dialect.function.CastFunction.render(CastFunction.java:59) \t org.hibernate.hql.ast.SqlGenerator.endFunctionTemplate(SqlGenerator.java:208) \t org.hibernate作爲.hql.antlr.SqlGeneratorBase.methodCall(SqlGeneratorBase.java:2319) \t org.hibernate.hql.antlr.SqlGeneratorBase.simpleExpr(SqlGeneratorBase.java:2691) – singh 2010-10-03 10:18:27

回答

0

沒有更多的信息我會猜測,dobDate爲空(或形式)。

但是我覺得喲在這裏反對穀物。我認爲hibernate的目的不是要返回格式正確的字符串。當hibernate正確地將我的Java對象轉換爲數據庫或從數據庫轉換出來時,我已經很開心。

格式化日期等我更喜歡在Java代碼中執行操作,實際上儘可能接近外部世界,在UI中或I/O層中,並將日期保存爲日期。這提供了更多的靈活性,我發現它使代碼更清潔。

這幾樣在休眠格式化的東西都與傳統的數據庫很有用where子句雖然