1、問題:在使用Spring、Hibernate開發(fā)的數(shù)據(jù)庫應(yīng)用中。發(fā)現(xiàn)不管如何。數(shù)據(jù)都插不到數(shù)據(jù)庫??墒浅绦虿粓?bào)錯(cuò)。能查詢到。也能插入。
2、分析:Hibernate設(shè)置了自己主動(dòng)提交仍然無論用,其原因非常easy,非??赡苣愕某绦虿僮鞯谋砗湍阆氩僮鞯谋聿⒎峭粋€(gè)表,假設(shè)程序中的注解表名和待操作表名不一致,則會建立新表,比如:
@Entity
@Table(name = "sampleData")
public class SampleData implements Serializable {
在這段代碼中指定的表名是sampleData,而實(shí)際想操作的表名為t_data。
這時(shí)不管你如何在t_data中查詢新插入的記錄都查不到。而反復(fù)插入時(shí)。卻報(bào)插入反復(fù),且能取到數(shù)據(jù)。
這是一個(gè)非技術(shù)問題,但假設(shè)沒有及時(shí)發(fā)現(xiàn),卻是浪費(fèi)了非常多的時(shí)間。
3、解決:將程序中的注解表名設(shè)置為待操作表的表名。
本文摘自 :https://blog.51cto.com/u