Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringMVC应用程序中使用hibernate从db中获取参考数据?_Java_Hibernate_Spring Mvc - Fatal编程技术网

Java 如何在SpringMVC应用程序中使用hibernate从db中获取参考数据?

Java 如何在SpringMVC应用程序中使用hibernate从db中获取参考数据?,java,hibernate,spring-mvc,Java,Hibernate,Spring Mvc,我正在使用hibernate开发SpringMVC应用程序。我们已经创建了一些实体,如位置、联系人等,以及它们各自的控制器和DAO。以下是我的dispatcher servlet部分: <bean id="jndiDataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:/MySqlDS" />

我正在使用hibernate开发SpringMVC应用程序。我们已经创建了一些实体,如位置、联系人等,以及它们各自的控制器和DAO。以下是我的dispatcher 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"/>

但在联系方式页面上,我需要显示国家下拉列表。我已将国家列表放入数据库。我们如何在不创建国家模型、dao、控制器等的情况下获取国家列表?

如果您想将国家作为一个实体并将其映射到其他实体bean,那么您必须创建模型(如果“模型”是指实体bean)。要访问它,您需要一个DAO方法。要在页面上显示它,您需要一个控制器方法

所以,我想这是没有办法的。例如,若您只需要在其他实体中使用国家名称作为字符串,那个么您可以在不创建实体的情况下进行操作,但仍然需要DAO和controller方法

取决于您的项目,但您不需要创建单独的DAO和控制器类。您只需要为国家/地区使用新方法,就可以将它们放在一些已经存在的类中

如果您只需要国家名称,那么在DAO类中需要如下内容:

public List<String> findCountryNames() {
    return session.createSQLQuery("select name from country").list();
}
公共列表findCountryNames(){
return session.createSQLQuery(“从国家/地区选择名称”).list();
}

以及一个控制器方法,该方法将返回这些结果。

我只需要在联系人实体中使用国家名称。我该怎么做?
public List<String> findCountryNames() {
    return session.createSQLQuery("select name from country").list();
}