實體拼錯名字,一點經驗教訓
阿新 • • 發佈:2017-06-30
3.0 map lips 和數 ips 常熟 pro left join 個人
,少了一個s…
這次的項目中出了一個問題,問題不大,可是挺坑的…
V 3.0的時候我們使用Hibernate完畢實體和數據庫的映射,當時有人把實體的一個屬性拼寫錯了,然後數據庫字段也錯了.V3.1的時候呢,我們換成了EclipseLink,改動了實體關聯,但還是沿用了當時的API中的Entity和數據庫.
3.1的開發者在做開發的時候,由於對實體非常熟悉,所以並不須要看實體是怎樣拼寫的,所以直接拼完例如以下語句:
String hql="select new map (S.id as id,"
+"S.name as name,"
+ "P.professionalNameas professionalName "
+ ") from Student as S left joinS.professional as P "
+" where S.isDelete=:isDelete ";
執行結果是報錯了.
依據錯誤提示能夠知道是語句的事兒,但是檢查來檢查去也沒發現什麽錯誤.打開數據庫一看,發現字段.professional表中有這麽個字段.profesionalName.於是無盡地流汗
假設改動實體和數據庫,之前用到這個屬性的地方一定會出錯的,假設不改,將錯就錯,興許用到這裏的人也都會出錯的,寫得越對就越報錯.
假設你問當時3.0怎麽沒出錯,這是由於那會用級聯,都是點出來的屬性,能夠不寫.
綜上所述,做前期實體設計和數據庫設計的時候還是要細心一點吧,能夠幾個人一起做,也要有專人審核.保證每一步都正確.
實體拼錯名字,一點經驗教訓