java - 如何使用hibernate从spring mvc应用程序中的数据库获取引用数据?

标签 java hibernate spring-mvc

我正在使用 hibernate 开发 spring mvc 应用程序。我们创建了一些实体,如位置、联系人等,以及它们各自的 Controller 和 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();

但在联系方式详细信息页面上,我需要显示国家/地区下拉列表。我已将国​​家/地区列表放入数据库中。我们如何在不创建国家模型、dao、 Controller 等的情况下获取国家列表?

最佳答案

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

所以,我想没有办法解决这个问题。例如,如果您只需要在其他实体中使用的字符串形式的国家/地区名称,那么您可以在不创建实体的情况下完成此操作,但您仍然需要 DAO 和 Controller 方法。

取决于您的项目,但您不需要创建单独的 DAO 和 Controller 。您只需要针对国家/地区的新方法,您可以将它们放入一些已经存在的类中。

如果您只需要国家/地区名称,那么您的 DAO 类中需要类似的内容:

public List<String> findCountryNames() {
    return session.createSQLQuery("select name from country").list();
}

以及一个将返回这些结果的 Controller 方法。

关于java - 如何使用hibernate从spring mvc应用程序中的数据库获取引用数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27981533/

相关文章:

java - UUID值如何保存在mysql数据库中

java - Hibernate - 修改父对象时对子对象(集合)进行级联修改

java - 如何在@ExceptionHandler 中获取 BindException 的根异常

Java 字符编码为 HTML ISO-8859-1

java - 从 Guice 迁移到 Spring : beans with default constructor and properties handling

Java SQL UPDATE 命令不起作用

java - 使用hibernate执行原生sql

hibernate - 带有算术运算的 executeUpdate 不会更改列

java - Spring 安全: How to get the automatically rendered login page code?

java - 发生异常时不会调用 ResponseEntityExceptionHandler