[jboss-user] [JBoss Seam] - I cannot get this test through, please help
transvia
do-not-reply at jboss.com
Fri Sep 21 14:41:10 EDT 2007
I creat a project from seam-gen2.0 CR. I am using Jboss server 4.2.1, Seam2.0 CR, MySQL 5.0. The project can be built, depoyed and run correctly. Then I create a simple test case, but I cannot make it works.
I tested that entity factory can be created; entity manager can also be created. But I cannot do database operation, including select and insert. Please help!
Test code:
package persistentTier;
|
| import java.util.List;
|
| import javax.ejb.Stateless;
| import javax.persistence.EntityManager;
| import javax.persistence.EntityManagerFactory;
| import javax.persistence.Persistence;
| import javax.persistence.PersistenceContext;
| import javax.persistence.Query;
|
| import org.hibernate.Session;
| import org.jboss.seam.annotations.In;
| import org.jboss.seam.mock.SeamTest;
| import org.testng.annotations.Test;
| import org.tt.user.User;
|
| public class EntityManagerTest extends SeamTest {
|
| //@PersistenceContext
| private EntityManager em;
|
| @Test
| public void unitTestEntityManager() throws Exception{
|
| EntityManagerFactory emf = Persistence.createEntityManagerFactory("tt");
|
| em =emf.createEntityManager();
| User user=em.find(User.class, new Double(1));
| assert user.getPassword().equals("5527686");
|
| em.close();
|
| }
|
| }
User class:
package org.tt.user;
|
| import java.io.Serializable;
|
| import javax.persistence.Entity;
| import javax.persistence.GeneratedValue;
| import javax.persistence.GenerationType;
| import javax.persistence.Id;
| import javax.persistence.Table;
|
| import org.hibernate.validator.NotNull;
| import org.jboss.seam.annotations.Name;
|
| @Entity
| @Name ("user")
| @Table (name="user")
| public class User implements Serializable {
|
| private double id;
| private String username;
| private String password;
|
| public User (){
| username="";
| password="";
| }
|
| @Id @GeneratedValue(strategy =GenerationType.AUTO)
| public double getId () {return this.id;}
| public void setId(long id){this.id=id;}
|
| public String getUsername(){return this.username;}
| public void setUsername(String username){this.username=username;}
|
| public String getPassword(){return this.password;}
| public void setPassword(String password){this.password=password;}
| }
|
Database, MySQL 5.0
| CREATE TABLE `user` (
| `id` double NOT NULL auto_increment,
| `username` varchar(50) NOT NULL,
| `password` varchar(50) NOT NULL,
| PRIMARY KEY (`id`)
| ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
|
| /*Data for the table `user` */
|
| insert into `user`(`id`,`username`,`password`) values (1,'oldreaper','5527686');
|
Erro message javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not load an entity: [org.tt.user.User#1.0]
| at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:647)
| at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:194)
| at persistentTier.EntityManagerTest.unitTestEntityManager(EntityManagerTest.java:29)
| Caused by: org.hibernate.exception.SQLGrammarException: could not load an entity: [org.tt.user.User#1.0]
| at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
| at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
| at org.hibernate.loader.Loader.loadEntity(Loader.java:1865)
| at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
| at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
| at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:2992)
| at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
| at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
| at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
| at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
| at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
| at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
| at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
| at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
| at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:174)
| ... 23 more
| Caused by: java.sql.SQLException: Table not found in statement [select user0_.id as id2_0_, user0_.username as username2_0_, user0_.password as password2_0_ from user user0_ where user0_.id=?]
| at org.hsqldb.jdbc.Util.throwError(Unknown Source)
| at org.hsqldb.jdbc.jdbcPreparedStatement.<init>(Unknown Source)
| at org.hsqldb.jdbc.jdbcConnection.prepareStatement(Unknown Source)
| at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.doPrepareStatement(BaseWrapperManagedConnection.java:386)
| at org.jboss.resource.adapter.jdbc.BaseWrapperManagedConnection.prepareStatement(BaseWrapperManagedConnection.java:374)
| at org.jboss.resource.adapter.jdbc.WrappedConnection.prepareStatement(WrappedConnection.java:187)
| at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497)
| at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:415)
| at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
| at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1538)
| at org.hibernate.loader.Loader.doQuery(Loader.java:661)
| at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
| at org.hibernate.loader.Loader.loadEntity(Loader.java:1851)
| ... 35 more
| ... Removed 22 stack frames
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4087385#4087385
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4087385
More information about the jboss-user
mailing list