Учусь работать с JPA. Есть MySQL таблица с полями a,b,c,d,e
spring-app.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<tx:annotation-driven/>
<context:component-scan base-package="ru"/>
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
<property name="packagesToScan" value="ru"/>
</bean>
<bean id="jpaVendorAdapter"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="MYSQL" />
<property name="showSql" value="true"/>
<property name="generateDdl" value="false"/>
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect" />
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.springframework.jdbc.datasource.DriverManagerDataSource" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/database" />
<property name="username" value="user" />
<property name="password" value="password" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf"/>
</bean>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
<bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
</beans>
CdrItem.Class
@NamedQueries({
@NamedQuery(name = CdrItem.GET_ALL, query = "SELECT i.a, i.b, i.c FROM CdrItem i")})
@Entity
@Table(name = "table")
public class CdrItem {
public static final String GET_ALL = "CdrItem.getAll";
@Id
private String id;
@Column(name = "a", nullable = false)
// @NotNull
private String a;
@Column(name = "b", nullable = false)
// @NotBlank
private String b;
@Column(name = "c", nullable = false)
// @NotBlank
private String c;
public CdrItem(String a, String b, String c) {
this.a = a;
this.b = b;
this.c = c;
}
public CdrItem() {
}
далее геттеры и сеттеры
...
}
interface JpaRepository.class
public interface JpaRepository {
List<CdrItem> getAll();
}
JpaRepositoryImpl.Class
@Repository
@Transactional
public class JpaRepositoryImpl implements JpaRepository {
@PersistenceContext
private EntityManager em;
@Override
public List<CdrItem> geAll() {
return em.createNamedQuery(CdrItem.GET_ALL, CdrItem.class).getResultList();
}
}
и когда я вызываю getAll(), я получаю:
Caused by: org.hibernate.HibernateException: Errors in named queries:
CdrItem.getAll failed because of: org.hibernate.hql.internal.ast.QuerySyntaxException: table is not mapped [SELECT i.a, i.b, i.c FROM table i]
Я не пойму, что не так... не видно таблицы table или не может найти записи, удовлетворяющие select'у ?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Собственно, в заголовке вопросАннотации JPA привязывают нас к самому JPA
Ребят нужна помощь, как реализовать сериализацию\десериализацию без использования serialization api, и соответственно ObjectOutputStream тк он входит в этот...
не могу разобраться как в статических методах правильнее описать условие