javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException
i have a MessageEntity class
Code:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String text;
public MessageEntity() {
}
public MessageEntity(final String text) {
this.text = text;
}
public long getId() {
return id;
}
public void setId(final long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(final String text) {
this.text = text;
}
@Override
public String toString() {
if (logger.isDebugEnabled()) {
logger.debug("Debug Enabled");
}
logger.debug("id is " + id + "text " + text);
return "MessageEntity [id=" + id + ", text=" + text + "]";
}
and a MessageContoller class
Code:
public class MessageJpaController {
static Logger logger = LoggerFactory.getLogger(MessageJpaController.class);
@PersistenceContext(unitName = "messagePersistenceUnit")
private EntityManager em;
public long count() {
Query q = em.createNamedQuery("MessageEntity.count");
return (Long) q.getSingleResult();
}
public void create(MessageEntity messageEntity) {
em.persist(messageEntity);
}
public MessageEntity read(final long id) {
return em.find(MessageEntity.class, id);
}}
and its JUnit test case
Code:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:context1.xml" })
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional
public class MessageJpaControllerTest {
@Autowired
private MessageJpaController messageJpaController;
@Test
public void testCreate() {
for (int i = 11; i <= 20; i++) {
messageJpaController.create(new MessageEntity(String.format(
"Message %s", i)));
}
assertEquals(10, messageJpaController.count());
}
}
i do see all the code working properly .. have added all the dependencies in pom.xml
Code:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<repositories>
<repository>
<id>JBoss Repo</id>
<url>http://repository.jboss.com/maven2</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.1.0.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.1.Final</version>
</dependency>
</dependencies>
i am getting " javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException" and com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: Table 'MyData.MessageEntity' doesn't exist
tq