Merhabalar Şöyle bir problemim var; projemde Spring Data JPA ile Hibernate kullanıyorum. MediaItem isimli bir Entity sınıfım var. Veritabanından bir sorgu çalıştırdığımda JPA Hibernate'in benim benim bu entity class'ımın SELECT sorgusunu oluşturması gerekiyor. Fakar adından dolayı şöyle bir hata alıyorum :

Caused by: org.hibernate.exception.SQLGrammarException: could not load an entity: [com.recdd.domain.MediaItem#1] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:92) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.loader.Loader.loadEntity(Loader.java:2041) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:86) at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:76) at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3294) at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:496) at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:477) at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:227) at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:285) at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:152) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:1090) at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:1038) at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:630) at org.hibernate.type.EntityType.resolve(EntityType.java:438) at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139) at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982) at org.hibernate.loader.Loader.doQuery(Loader.java:857) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.doList(Loader.java:2542) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276) at org.hibernate.loader.Loader.list(Loader.java:2271) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246) at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:253) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:264) at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:358) at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155) ... 34 more

ve sebep olarak şu hata görünüyor :

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?tem0_.MEDIA_ID as MEDIA1_9_0_, media?tem0_.MEDIA_DESCRIPTION as MEDIA2_9_0_, me' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) at com.mysql.jdbc.Util.getInstance(Util.java:384) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4232) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4164) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2615) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208) at org.hibernate.loader.Loader.getResultSet(Loader.java:1953) at org.hibernate.loader.Loader.doQuery(Loader.java:802) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274) at org.hibernate.loader.Loader.loadEntity(Loader.java:2037) ... 74 more

Entity adını değiştirip Media yaptığım zaman sorunsuz çalışıyor. Anladığım kadarıyla oluşturulan SQL kodu içerisinde I karakteri i karakterine dönüştürülmediğinden sorgu hatalı çalışıyor. Bunu nasıl düzeltebilirim. I karakteri yerine ? değilde i karakteri nasıl yazdırabilirim sorgu içinde ? Teşekkür ederim.

soruldu: 17 May '14, 12:13

merakedenadam's gravatar image

merakedenadam
22191015
cevap kabul oranı: 20%

değiştirildi: 18 May '14, 11:06

CemIkta's gravatar image

CemIkta ♦
19.9k29125190

2

Entity ve Spring Data Repository kodlarinizi gormeden sorunu anlamak zor. Eger hata karakter kodlamasindan kaynaklaniyorsa MS Windows ve Eclipse IDE kullaniyorsaniz Java dosyalarinizin UTF-8 formatinda kayit edildiginden emin olun. Eclipse IDE MS Windows'da default ISO-xxxx kodlamasini alir. Eclipse ayarlarindan Java dosya kodlamasini UTF-8 olarak degistirirseniz sorun cozulmesi lazim.

(18 May '14, 11:05) CemIkta ♦ CemIkta's gravatar image

CharSet hatası "media?tem0_.MEDIA_DESCRIPTION" logdaki bu kısım oldukça açıklayıcı bu konuda.

(18 May '14, 13:31) Turgay Can Turgay%20Can's gravatar image

Javaya

-Duser.language=en -Duser.country=us

veriseniz işletim sistemi ayarları ile uğraşmanıza gerek kalmaz. Bu parametreyi kullandığınız sunucuya tanımlamanız gerecektir

permanent link

cevaplandı: 29 Ağu '14, 10:02

myururdurmaz's gravatar image

myururdurmaz
2.2k11027
cevap kabul oranı: 23%

İşletim sisteminin dili Türkçe olduğu zaman jvm bu hatayı veriyor. Dili İngilizce yapınca düzeldi.

permanent link

cevaplandı: 28 Ağu '14, 17:00

merakedenadam's gravatar image

merakedenadam
22191015
cevap kabul oranı: 20%

Cevabınız
toggle preview

powered by BitNami OSQA