我正在使用hibernate处理spring mvc应用程序。我们创建了一些实体,如位置,联系人等,以及他们各自的控制器和daos。以下是我的调度程序servlet部分:
<bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:/MySqlDS" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="jndiDataSource" />
<property name="packagesToScan" value="com.bizmerlin.scm"></property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="contactService" class="com.bizmerlin.scm.services.ContactService"/>
<bean id="contactDao" class="com.bizmerlin.scm.dao.ContactDao"/>
我们正在使用hibernate进行CRUD。以下是hibernate代码:
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(ContactModel.class);
criteria.addOrder(Order.asc("contactName"));
return criteria.list();
但是在联系方式详情页面上,我需要显示国家/地区。我把国家列表放在db中。如何在不创建国家模型,dao,控制器等的情况下获取国家/地区列表?
答案 0 :(得分:0)
如果要将国家/地区用作实体并将其映射到其他实体bean,则必须创建模型(如果通过“模型”,则表示实体bean)。要访问它,您需要一个DAO方法。要在页面上显示它,您需要一个控制器方法。
所以,我想没有办法绕过它。例如,如果你只需要将国家名称作为String用于其他实体,那么你可以在不创建实体的情况下完成它,但你仍然需要DAO和控制器方法。
取决于您的项目,但您不需要创建单独的DAO和控制器类。您只需要国家/地区的新方法,您可以将它们放在一些现有的类中。
如果您只需要国家/地区名称,那么您在DAO课程中需要这样的内容:
public List<String> findCountryNames() {
return session.createSQLQuery("select name from country").list();
}
以及将返回这些结果的控制器方法。