Почему не пропускает hql-запрос?

125
30 октября 2019, 14:30

Проект с поддержкой springMVC.
В запросе подчеркивает FROM('FROM' unexpected). Почему?

@Repository
    public class BookmarksDAOImpl implements BookmarksDAO{
        /*Настроить логирование в файл*/
        private static final Logger logger = LoggerFactory.getLogger(BookmarksDAOImpl.class);
        private SessionFactory sessionFactory;
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
        }
        @Override
        @SuppressWarnings("unchecked")
        public List<Bookmarks> listBookmarks() {
            Session session = sessionFactory.getCurrentSession();
            List<Bookmarks> listBookmarks = session.createQuery("FROM Bookmarks").list();
            return listBookmarks;
        }
    }

Класс-сущность(Скопирую все, кроме set/get методов):

@Entity
@Table(name="bookmarks")
public class Bookmarks {
    @Id
    @Column(name="id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Column(name="name")
    private String name;
    @Column(name="Date")
    private Calendar calendar;
    @Column(name="Reference")
    private String reference;
    @Column(name="Description")
    private String description;

База данных называется Bookmarks, в ней одна таблица bookmarks

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <context:component-scan base-package="net"/>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <!-- Connection DB -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/Bookmarks"/>
        <property name="username" value="root"/>
        <property name="password" value="rootpasswordgiven"/>
    </bean>
    <!-- Hibernate 5-->
    <bean id="hibernate5AnnotatedSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="annotatedClasses">
            <list>
                <value>net.model.Bookmarks</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="show_sql">true</prop>
            </props>
        </property>
    </bean>
    <!-- Create beans DAO and Service level-->
    <bean id="bookmarksDao" class="net.dao.BookmarksDAOImpl">
        <property name="sessionFactory" ref="hibernate5AnnotatedSessionFactory"/>
    </bean>
    <bean id="bookmarksService" class="net.service.BookmarksServiceImpl">
        <property name="bookmarksDAO" ref="bookmarksDao"/>
    </bean>
    <!-- Create bean transactionManager-->
    <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="hibernate5AnnotatedSessionFactory"/>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager"/>
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven/>
</beans>
Answer 1

Ошибка из-за intellij idea, пока не разобрался почему именно с 5 версией такие проблемы. Idea не может нормально разобрать hql запрос, поэтому и unexpected пишет, чтобы это исправить(добавить в проект поддержку hibernate): Правой кнопкой мыши по модулю проекта -> Add Framework Support -> Hibernate(ставим галочку и подтверждаем).

READ ALSO
Регулярные выражения Java + JSON

Регулярные выражения Java + JSON

Всем приветВозникла необходимость изменить часть Json'а

136
Отправка сообщений Telegram bot

Отправка сообщений Telegram bot

Для написания бота, я использую библиотеку для java TelegraBots

122
Обработка входящих сообщений Telegram API

Обработка входящих сообщений Telegram API

Пишу телеграмм бота для регистрации задачИспользую библиотеку от rubenlagus

138
При использовании @EnableAspectJAutoProxy не работает Autowired

При использовании @EnableAspectJAutoProxy не работает Autowired

начал разбираться со Spring и AOP, хочу сделать логирование, но столкнулся с проблемойВот классы мои классы Application:

140