org.hibernate.hql.internal.ast.QuerySyntaxException: tablo eşlenmedi


98

Örnek web uygulaması Hibernate 4.3.5 + Derby veritabanı 10.10.1.1+ Glassfish4.0, IDE NetBeans 8.0Beta ile.

Bir sonraki istisnam var:

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: CUSTOMERV is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:95)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:331)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3633)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3522)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:706)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:562)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:299)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:247)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:278)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:206)
... 72 more 

İndex.xhtml'den form

<h:panelGrid id="panel1" columns="2" border="1"
                 cellpadding="5" cellspacing="1">
        <f:facet name="header">
            <h:outputText value="Add Customer Information"/>
        </f:facet>
        <h:outputLabel value="First Name:"/>
        <h:inputText value="#{customer.firstName}" id="fn"/>
        <h:outputLabel value="Last Name:"/>
        <h:inputText value="#{customer.lastName}" id="ln"/>
        <h:outputLabel value="Email:"/>
        <h:inputText value="#{customer.email}" id="eml"/>
        <h:outputLabel value="Date of Birth:"/>
        <h:inputText value="#{customer.sd}" id="s"/>
        <f:facet name="footer">
            <h:outputLabel value="#{customer.msg}" id="msg" styleClass="msg"/>
            <h:commandButton value="Save" action="#{customer.saveCustomer}">
            </h:commandButton>
        </f:facet>
    </h:panelGrid> 

Customer.java

    package com.javaknowledge.entity;

    import com.javaknowledge.dao.CustomerDao;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import javax.persistence.*;    

    @ManagedBean
    @SessionScoped

    public class Customer implements java.io.Serializable {

    private Integer custId;
    private String firstName;
    private String lastName;
    private String email;
    private Date dob;
    private String sd, msg, selectedname;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");


    public Customer() {
    }

    public Customer(String firstName, String lastName, String email, Date dob) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.email = email;
        this.dob = dob;
    }

    public String getSd() {
        return sd;
    }

    public void setSd(String sd) {
        this.sd = sd;
    }

    public Integer getCustId() {
        return this.custId;
    }

    public void setCustId(Integer custId) {
        this.custId = custId;
    }

    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return this.lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    @Column(name = "EMAIL")
    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Column(name = "DOB")
    public Date getDob() {
        return this.dob;
    }

    public void setDob(Date dob) {
        this.dob = dob;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getSelectedname() {
        return selectedname;
    }

    public void setSelectedname(String selectedname) {
        this.selectedname = selectedname;
    }

    public void saveCustomer() {
        try {
            Date d = sdf.parse(sd);
            System.out.println(d);
            this.dob = d;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        CustomerDao dao = new CustomerDao();
        dao.addCustomer(this);
        this.msg = "Member Info Saved Successfull!";
        clearAll();
    }
    public void updateCustomer() {
        try {
            Date d = sdf.parse(sd);
            System.out.println(d);
            this.dob = d;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        CustomerDao dao = new CustomerDao();
        dao.updateCustomer(this);
        this.msg = "Member Info Update Successfull!";
        clearAll();
    }
    public void deleteCustomer() {
        CustomerDao dao = new CustomerDao();
        dao.deleteCustomer(custId);
        this.msg = "Member Info Delete Successfull!";
        clearAll();
    }

    public List<Customer> getAllCustomers() {
        List<Customer> users = new ArrayList<Customer>();
        CustomerDao dao = new CustomerDao();
        users = dao.getAllCustomers();
        return users;
    }

    public void fullInfo() {
        CustomerDao dao = new CustomerDao();
        List<Customer> lc = dao.getCustomerById(selectedname);
        System.out.println(lc.get(0).firstName);
        this.custId = lc.get(0).custId;
        this.firstName = lc.get(0).firstName;
        this.lastName = lc.get(0).lastName;
        this.email = lc.get(0).email;
        this.dob = lc.get(0).dob;
        this.sd = sdf.format(dob);
    }

    private void clearAll() {
        this.firstName = "";
        this.lastName = "";
        this.sd = "";
        this.email = "";
        this.custId=0;
    }

   }

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
    <property name="hibernate.connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
    <property name="hibernate.connection.url">jdbc:derby://localhost:1527/derbyDB</property>
    <property name="hibernate.connection.username">user1</property>
    <property name="hibernate.connection.password">user1</property>
    <property name="hibernate.hbm2ddl.auto">create</property>

    <property name="c3p0.min_size">1</property>
    <property name="c3p0.max_size">5</property>
    <property name="c3p0.timeout">300</property>
    <property name="c3p0.max_statements">50</property>
    <property name="c3p0.idle_test_period">300</property>

    <mapping class="com.javaknowledge.entity.Customer" resource="com/javaknowledge/entity/Customer.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Customer.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="com.javaknowledge.entity.Customer" table="CUSTOMERV" schema="APP">
        <id name="custId" type="java.lang.Integer">
            <column name="cust_id" />
            <generator class="increment" />
        </id>
        <property name="firstName" type="string">
            <column name="first_name" length="45" not-null="true" />
        </property>
        <property name="lastName" type="string">
            <column name="last_name" length="45" not-null="true" />
        </property>
        <property name="email" type="string">
            <column name="email" length="45" not-null="true" />
        </property>
        <property name="dob" type="date">
            <column name="dob" length="10" not-null="true" />
        </property>
   </class>
</hibernate-mapping>

Yanıtlar:


122

Sonunda bir hata buldum! Umarım bu birisi için yararlıdır. Veritabanına bir istek yaparken (benim durumumda Apache Derby), taban adı ilk harfini büyük harfle diğerini küçük harfle yazmalıdır.

Bu yanlış sorgu:

session.createQuery("select first_name from CUSTOMERV").

Bu geçerli bir sorgu

session.createQuery("select first_name from Customerv"). 

Ve sınıf varlığı veritabanı ile aynı isimde olmalı, ama emin değilim.


44
Nedeni bu olmayabilir. Müşteri c'den c'yi seçin, çünkü Müşteri sınıf adı sizsiniz ve sorguya tablo adı değil sınıf adı yazmalıyız. Hibernate.cfg.xml dosyanıza hem <eşleme kaynağı hem de sınıf> yalnızca bir tane verdiniz. iyi olurdu. Lütfen bunu kontrol edin.
Shoaib Chikate

Tavsiye için teşekkürler Shoalib Chikate!
Vlad Dobrydin


4
Harika, benim için işe yarayan tek şey, veritabanı tablo adının kendisi yerine sadece iyi biçimlendirilmiş sınıf adını kullanmaktı. Bence Hibernate, uygun bir haritalama yapabilmek için bunu gerektiriyor. Biraz kafa karıştırıcı ve JDBC'deki gibi alışılagelmiş bir yol değil, ancak umarım gelecekteki sürümler bu sorunu sevmeye çalışır. Bu sorgu mekanizmalarından bazıları için JDBC'den bir stil korumak bir artı olacaktır.
Akah

2
Teşekkürler. Benim için çalıştı. Aslında tablo adını değil varlık / sınıf adını alır. Örneğin: tablo adınız MÜŞTERİ ise ve varlık adınız Müşteri ise, Müşteri bir HQL sorgusu olduğu için sorguya girecektir.
Terry

50

içinde HQL sorgusu, Do not yazma Tablo adını , sizin yazma Varlık sınıf adı gibi sorgunuzdaki

String s = "from Entity_class name";
query qry = session.createUqery(s);

Hem zamanımı hem de hayatımı kurtardın (*> *)
Ved Prakash

19

Benim durumumda eklemeyi unuttum nativeQuery = true

@Query( value = "some sql query ...", nativeQuery = true)

Spring Data JPA ile Spring Boot için


1
Teşekkürler! aynısı şimdi benimle oldu :)
essayoub

12

hibernate.cfg.xml dosyası aşağıdaki gibi tablolar için eşleşmeye sahip olmalıdır. Dosyanızda eksik olup olmadığını kontrol edin.

......
<hibernate-configuration>
......
......
  <session-factory>
......
<mapping class="com.test.bean.dbBean.testTableHibernate"/>
......
 </session-factory>

</hibernate-configuration>
.....

1
Benim için durum buydu, uygulamayı Derby yerine Oracle DB ile çalışacak şekilde değiştirirken - Derby ile, bazı nedenlerden dolayı, varlıkların persistence.xml'de bildirilmesi gerekli değildi (varlıklara zaten açıklama eklenmiş olduğundan bana mantıklı geldi) (belki bu eski bir sürücü yüzündendi (ojdbc6))
hello_earth

10

Varlıkları oluşturmak için JPA ek açıklamalarını kullanıyorsanız ve ardından tablo adının @Entity yerine @Table ek açıklaması ile eşleştirildiğinden emin olun.

Yanlış eşlendi:

@Entity(name="DB_TABLE_NAME")
public class DbTableName implements Serializable {
   ....
   ....
}

Doğru eşlenmiş varlık:

@Entity
@Table(name="DB_TABLE_NAME")
public class DbTableName implements Serializable {
   ....
   ....
}

3
Teşekkür ederim! Bu tam da bu sorunun benim versiyonuydu.
Martin McCallion

1
Teşekkürler Çok yardımcı oldu. Başkalarına yardım etmeye devam etmek
mukesh krishnan

4

Belki bu daha açık hale getirecek ve elbette mantıklı.

@Entity
@Table(name = "users")

/**
 * 
 * @author Ram Srinvasan
 * Use class name in NamedQuery
 * Use table name in NamedNativeQuery
 */
@NamedQueries({ @NamedQuery(name = "findUserByName", query = "from User u where u.name= :name") })

@NamedNativeQueries({ @NamedNativeQuery(name = "findUserByNameNativeSQL", query = "select * from users u where u.name= :name", resultClass = User.class) })
public class User implements Principal {
...
}

3

Sınıf adını kullansak bile bu istisnayı elde etmek için bir şansımız daha var, yani farklı paketlerde aynı ada sahip iki sınıfımız varsa. bu sorunu alacağız.

Bence hazırda bekletme belirsizlik alabilir ve bu istisnayı atabilir , bu nedenle çözüm tam nitelikli ad kullanmaktır ( com.test.Customerv gibi )

Bahsettiğim gibi senaryoda yardımcı olacak bu cevabı ekledim. Aynı senaryo bir süredir takılıp kalıyor.


3

Diğer çözümlerin hiçbiri benim için işe yaramadı.

Bunun en iyi uygulama olduğunu düşünmesem bile, bunu koda böyle eklemek zorunda kaldım

configuration.addAnnotatedClass(com.myOrg.entities.Person.class);

buraya

public static SessionFactory getSessionFactory() {
    Configuration configuration = new Configuration().configure();

    configuration.addAnnotatedClass(com.myOrg.entities.Person.class);

    StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder()
            .applySettings(configuration.getProperties());
    SessionFactory sessionFactory = configuration.buildSessionFactory(builder.build());
    return sessionFactory;
}

3

Hazırda Bekletme üzerinde çalışmaya başladığımda ben de benzer bir sorunla karşılaştım. Tüm söyleyebileceğim, createQuery'de, varlığın eşlendiği tablo adını değil, varlık sınıfının adını iletmesi gerektiğidir.


2

Bu, tablonuzun JPA ile eşlenmediği anlamına gelir. Ya tablonun adı yanlıştır (Belki büyük / küçük harfe duyarlıdır) veya XML dosyasına bir girdi koymanız gerekir.

Mutlu Kodlama :)


hangi xml dosyasında?
Subrahmanyam Janapamula

2

Hazırda bekletme için eşleme sınıflarını kullanan diğer kişiler , aşağıdaki bölümde fasulye bildiriminde paketi modellemek için doğru şekilde adreslendiğinden emin olun sessionFactory:

<property name="packagesToScan" value="com.mblog.model"></property>

Değişmek unuttum ben micronaut ile bu sorunu vardı packages-to-scanbenim de application.ymlyapılandırma dosyası.
İbrahim.H

1

Yapılandırma için herhangi bir şans eseri java kullanıyorsanız bean, paket düzeyinde değişiklikleriniz varsa aşağıdaki beyanı kontrol etmeniz gerekebilir . Örneğin: com.abc.springpaket şu şekilde değiştirildicom.bbc.spring

@Bean
    public SessionFactory sessionFactory() {

        LocalSessionFactoryBuilder builder = new LocalSessionFactoryBuilder(dataSource());
        //builder.scanPackages("com.abc.spring");    //Comment this line as this package no longer valid.
        builder.scanPackages("com.bbc.spring");
        builder.addProperties(getHibernationProperties());

        return builder.buildSessionFactory();
    }

1

Benim durumumda: yay önyükleme 2, çoklu veri kaynağı (varsayılan ve özel). entityManager.createQueryyanlış gidin: 'varlık eşlenmedi'

hata ayıklarken, entityManager'ın unitName'inin yanlış olduğunu (özel olmalı, ancak gerçek öntanımlıdır) doğru şekilde buldum:

@PersistenceContext(unitName = "customer1") // !important, 
private EntityManager em;

customer1İkinci veri kaynağı yapılandırma sınıfından olan:

@Bean(name = "customer1EntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder,
        @Qualifier("customer1DataSource") DataSource dataSource) {
    return builder.dataSource(dataSource).packages("com.xxx.customer1Datasource.model")
            .persistenceUnit("customer1")
            // PersistenceUnit injects an EntityManagerFactory, and PersistenceContext
            // injects an EntityManager.
            // It's generally better to use PersistenceContext unless you really need to
            // manage the EntityManager lifecycle manually.
            // 【4】
            .properties(jpaProperties.getHibernateProperties(new HibernateSettings())).build();
}

Ardından, entityManager haklı.

Ancak em.persist (varlık) çalışmaz ve işlem çalışmaz.

Bir diğer önemli nokta ise:

@Transactional("customer1TransactionManager") // !important
public Trade findNewestByJdpModified() {
    //test persist,working right!
    Trade t = new Trade();
    em.persist(t);
    log.info("t.id" + t.getSysTradeId());

    //test transactional, working right!
    int a = 3/0;
}

customer1TransactionManager ikinci veri kaynağı yapılandırma sınıfındandır:

@Bean(name = "customer1TransactionManager")
public PlatformTransactionManager transactionManager(
        @Qualifier("customer1EntityManagerFactory") EntityManagerFactory entityManagerFactory) {
    return new JpaTransactionManager(entityManagerFactory);
}

İkinci veri kaynağı yapılandırma sınıfının tamamı şudur:

package com.lichendt.shops.sync;

import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;
import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(entityManagerFactoryRef = "customer1EntityManagerFactory", transactionManagerRef = "customer1TransactionManager",
        // 【1】这里写的是DAO层的路径 ,如果你的DAO放在 com.xx.DAO下面,则这里写成 com.xx.DAO
        basePackages = { "com.lichendt.customer1Datasource.dao" })
public class Custom1DBConfig {

    @Autowired
    private JpaProperties jpaProperties;

    @Bean(name = "customer1DatasourceProperties")
    @Qualifier("customer1DatasourceProperties")
    @ConfigurationProperties(prefix = "customer1.datasource")
    public DataSourceProperties customer1DataSourceProperties() {
        return new DataSourceProperties();
    }

    @Bean(name = "customer1DataSource")
    @Qualifier("customer1DatasourceProperties")
    @ConfigurationProperties(prefix = "customer1.datasource") //
    // 【2】datasource配置的前缀,对应上面 【mysql的yaml配置】
    public DataSource dataSource() {
        // return DataSourceBuilder.create().build();
        return customer1DataSourceProperties().initializeDataSourceBuilder().build();
    }

    @Bean(name = "customer1EntityManagerFactory")
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder,
            @Qualifier("customer1DataSource") DataSource dataSource) {
        return builder.dataSource(dataSource).packages("com.lichendt.customer1Datasource.model") // 【3】这里是实体类的包路径
                .persistenceUnit("customer1")
                // PersistenceUnit injects an EntityManagerFactory, and PersistenceContext
                // injects an EntityManager.
                // It's generally better to use PersistenceContext unless you really need to
                // manage the EntityManager lifecycle manually.
                // 【4】
                .properties(jpaProperties.getHibernateProperties(new HibernateSettings())).build();
    }

    @Bean(name = "customer1TransactionManager")
    public PlatformTransactionManager transactionManager(
            @Qualifier("customer1EntityManagerFactory") EntityManagerFactory entityManagerFactory) {
        return new JpaTransactionManager(entityManagerFactory);
    }
}

birden çok veri kaynağının springboot 2 ile nasıl yapılandırılacağını gösterir.
hatanooh

0

Sorun kısmen çözüldü. Jdbc / resource (DB Derby) oluşturmanın yanı sıra Glassfish yönetici konsolunda db kaynağı için JDBC Bağlantı Havuzu oluşturmalı ve ping atma sırasında kontrol etmeliydi. Şimdi tüm CRUD işlemleri gayet iyi çalışıyor. Kontrol ediyorum, Müşterinin veritabanına doğru şekilde eklenmesine itiraz ediyorum, güncelliyor ve siliyorum. Ancak Glassfish çıktı günlüğünde aynı istisna vardır:

SEVERE:   org.hibernate.hql.internal.ast.QuerySyntaxException: CUSTOMERV is not mapped [select concat(first_name, ' ', last_name) as name from CUSTOMERV]
    at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:96)
    at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:120)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:234)
    .......

Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: CUSTOMERV is not mapped
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:189)
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:109)

1
Yeni bir soru açmayı önerin ... bu ilk sorunun cevabı değil ... veya ilk sorunuzu 'Güncelle' anahtar kelimesiyle zenginleştirin
Pipo

0

Em.createQuery yöntemi için Varlık sınıfı adını kullanmalı veya varlık sınıfı olmadan yerel sorgu için em.createNativeQuery yöntemini kullanmalıdır

Varlık sınıfı ile:

em.createQuery ("CUSTOMERV'den ilk_adı seçin")

Varlık sınıfı veya Yerel sorgu olmadan:

em.createNativeQuery ("CUSTOMERV c'den c.first_name'i seçin")


0

Apache Derby DB'de, tablo adlarını "user" olarak kullanmaktan kaçının çünkü bunlar Apache Derby'de ayrılmış anahtar sözcüklerdir, ancak MySql'de iyi çalışırlar.

Sorguda, Sorgunun FROM yan tümcesinde verileri almak istediğiniz Varlık sınıfının adını belirtmeniz gerekir.

List<User> users=session.createQuery("from User").list();

Burada, Kullanıcı, Java Varlık sınıfımın adıdır (Java'da olduğu gibi adın büyük / küçük harf durumunu dikkate alın.)


0

İşe yarayan başka bir çözüm:

Bu istisnayı gerçekten atan veri erişim nesnesi

public List<Foo> findAll() {
    return sessionFactory.getCurrentSession().createQuery("from foo").list();
}

Yukarıdaki ön bilgide yaptığım hata, createQuery içinde tablo adını foo kullanmış olmamdır. Bunun yerine, gerçek sınıf adı olan Foo'yu kullanmalıyım.

public List<Foo> findAll() {
    return sessionFactory.getCurrentSession().createQuery("from Foo").list();

Bu blog sayesinde: https://www.arundhaj.com/blog/querysyntaxexception-not-mapped.html


0

Hibernate için eşleme sınıflarını kullanan diğer kişiler, aşağıdaki bölümde sessionFactory bean bildiriminde paketi modellemek için doğru adreslendiğinden emin olun:

public List<Book> list() {
    List<Book> list=SessionFactory.getCurrentSession().createQuery("from book").list();
    return list;
}

Yukarıdaki ön bilgide yaptığım hata, createQuery içinde tablo adını foo kullanmış olmamdır. Bunun yerine, gerçek sınıf adı olan Foo'yu kullanmalıyım.

public List<Book> list() {                                                                               
    List<Book> list=SessionFactory.getCurrentSession().createQuery("from Book").list();
    return list;
}

0

nativeQuery = true parametresi ekle

örn: @Query (value = "Kullanıcı kümesini güncelle user_name =: user_name, password =: password burada user_id =: user_id", nativeQuery = true)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.