Druga encja nie działa

0

Uczę się Springa + Hibernate i napotkałem na problem, gdyż nie mogę wczytać z bazy danych 2 tabel. Tworzę program na podstawie gotowego przykładu połączenia sprogna z hibernate. Mam mniej więcej coś takiego:

@Configuration
@ComponentScan("net.codejava.spring")
@EnableTransactionManagement
public class ApplicationContextConfig {
	
    @Bean(name = "viewResolver")
    public InternalResourceViewResolver getViewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }
     
    
    @Bean(name = "dataSource")
    public DataSource getDataSource() {
    	BasicDataSource dataSource = new BasicDataSource();
    	dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    	dataSource.setUrl("jdbc:mysql://localhost:3306/mojabaza");
    	dataSource.setUsername("angolix");
    	dataSource.setPassword("mama11");
    	
    	return dataSource;
    }
    
    
    private Properties getHibernateProperties() {
    	Properties properties = new Properties();
    	properties.put("hibernate.show_sql", "true");
    	properties.put("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
    	return properties;
    }
    
    @Autowired
    @Bean(name = "sessionFactory")
    public SessionFactory getSessionFactory(DataSource dataSource) {
    	LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
    	sessionBuilder.addProperties(getHibernateProperties());
    	sessionBuilder.addAnnotatedClasses(Transaction.class);
    	return sessionBuilder.buildSessionFactory();
    }
    
	@Autowired
	@Bean(name = "transactionManager")
	public HibernateTransactionManager getTransactionManager(
			SessionFactory sessionFactory) {
		HibernateTransactionManager transactionManager = new HibernateTransactionManager(
				sessionFactory);

		return transactionManager;
	}
    
    @Autowired
    @Bean(name = "transactionDao")
    public TransactionDAO getTransactionDao(SessionFactory sessionFactory) {
    	return new TransactionDAOImpl(sessionFactory);
    }
    
    @Autowired
    @Bean(name = "categoryDao")
    public CategoryDAO getCategoryDao(SessionFactory sessionFactory) {
    	return new CategoryDAOImpl(sessionFactory);
    }
public class SpringWebAppInitializer implements WebApplicationInitializer {

	@Override
	public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext appContext = new AnnotationConfigWebApplicationContext();
        appContext.register(ApplicationContextConfig.class);
        
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet(
                "SpringDispatcher", new DispatcherServlet(appContext));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
        
	}

}
@Controller
public class HomeController {
	
	@Autowired
	private TransactionDAO transactionDao;
	
	@Autowired
	private CategoryDAO categoryDao;
	

	@RequestMapping("/")
	public ModelAndView handleRequest() throws Exception {
		List<Transaction> listTransaction = transactionDao.list();
		ModelAndView model = new ModelAndView("TransactionList");
		model.addObject("transactionList", listTransaction);
		return model;
	}
	
	@RequestMapping(value = "/category")
	public ModelAndView getCategory() throws Exception {
		List<Category> listCategory = categoryDao.list();
		ModelAndView model = new ModelAndView("CategoryList");
		model.addObject("categoryList", listCategory);
		return model;
	}
	

Klasy DAO oraz modelu danych są niemal identyczne. Różnią się nazwą tabeli oraz 1 polem. Problem polega na tym, gdy odpalę aplikację i przejdę na "/category", nic się nie wyświetla i nie ma informacji w konsoli o odpytywanie z hibernate. Dodam jeszcze plik widoku klasy która się nie wyświetla:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>BudgetManager</title>
    </head>
    <body>
        <div align="center">
	        <h1>Transactions List</h1>
	        <h2><a href="new">New Transaction</a></h2>
	        
        	<table border="1">
	        	<th>No</th>
	        	<th>Name</th>
	        	<th>Actions</th>
	        	
				<c:forEach var="category" items="${categoryList}" varStatus="status">
	        	<tr>
	        		<td>${status.index + 1}</td>
					<td>${category.name}</td>
					<td>
						<a href="delete?id=${category.id}">Delete</a>
					</td>
	        	</tr>
				</c:forEach>	        	
        	</table>
        </div>
    </body>
</html>
0

Ty mówisz serio? o_O

sessionBuilder.addAnnotatedClasses(Transaction.class);

Nie widzę żebyś gdziekolwiek uwzględniał tą swoją drugą klasę więc hibernate w ogóle o niej nie wie. Lepiej bys wyszedł na packagesToScan z jakimś pakietem gdzie są wszystkie encje...

1 użytkowników online, w tym zalogowanych: 0, gości: 1