At line 80 changed 1 line. |
;:%%(color: blue)''I'm using {{generator-class="increment"}} instead of {{generate-class="native"}} because I [found some issues|AppFuseOnDB2] when using "native" on other databases.''%% |
;:%%(color: blue)''I'm using {{generator-class="increment"}} instead of {{generate-class="native"}} because I [found some issues|AppFuseOnDB2] when using "native" on other databases. If you only plan on using MySQL, I recommend you use the "native" value.''%% |
At line 115 changed 1 line. |
<generator class="native"> |
<generator class="increment"> |
At line 130 changed 1 line. |
Now we'll add additional [@hibernate.property|http://xdoclet.sourceforge.net/tags/hibernate-tags.html#@hibernate.property%20(0..1)] tags for our other columns (firstName, lastName): |
Now we'll add additional [@hibernate.property|http://xdoclet.sourceforge.net/tags/hibernate-tags.html#@hibernate.property%20(0..1)] tags for our other columns (first_name, last_name): |
At line 154 changed 3 lines. |
{{{ |
[schemaexport] create table person ( |
[schemaexport] id BIGINT NOT NULL AUTO_INCREMENT, |
|
{{{[schemaexport] create table person ( |
[schemaexport] id BIGINT NOT NULL, |
At line 160 changed 2 lines. |
[schemaexport] ) |
}}} |
[schemaexport] )}}} |
|
At line 178 added 1 line. |
import org.appfuse.model.Person; |
At line 180 added 1 line. |
|
At line 202 changed 1 line. |
The code you see above is what we need for a basic JUnit test that initializes and destroys our PersonDao. The "ctx" object is a reference to Spring's ApplicationContext, which is initialized in the [BaseDaoTestCase|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/persistence/BaseDaoTestCase.java.html] class. |
The code you see above is what we need for a basic JUnit test that initializes and destroys our PersonDao. The "ctx" object is a reference to Spring's ApplicationContext, which is initialized (code below) in the [BaseDaoTestCase's|http://raibledesigns.com/downloads/appfuse/api/org/appfuse/persistence/BaseDaoTestCase.java.html] constructor. |
At line 299 added 3 lines. |
import org.appfuse.model.Person; |
|
|
At line 307 changed 1 line. |
At this point, you should be able to compile all the source in src/dao and test/dao using "ant compile-dao". However, if you try to run "ant test-dao -Dtestcase=PersonDao", you will get an error: <span style="color: red">DAOException: no DAOHibernate class</span>. |
At this point, you should be able to compile all the source in src/dao and test/dao using "ant compile-dao". However, if you try to run "ant test-dao -Dtestcase=PersonDao", you will get an error: <span style="color: red">No bean named 'personDao' is defined</span>. This is an error message from Spring - indicating that we need to specify a bean named ''personDAO'' in applicationContext-hibernate.xml. Before we do that, we need to create the PersonDao implementation class. |
At line 311 changed 1 line. |
Let's squash that bug and create a PersonDaoHibernate class that implements the methods in PersonDao and uses Hibernate to get/save/delete the Person object. To do this, create a new class in src/ejb/**/persistence and name it PersonDAOHibernate.java. It should extend BaseDaoHibernate and implement PersonDAO. |
Let's start by creating a PersonDaoHibernate class that implements the methods in PersonDao and uses Hibernate to get/save/delete the Person object. To do this, create a new class in src/dao/**/persistence and name it PersonDAOHibernate.java. It should extend Spring's [HibernateDaoSupport|http://www.springframework.org/docs/api/org/springframework/orm/hibernate/support/HibernateDaoSupport.html] and implement PersonDAO. |