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