[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