Hibernate在数据库中添加了2个条目

时间:2016-10-19 18:53:26

标签: hibernate spring-mvc

我第一次使用Spring MVC和Hibernate,每次使用Repository将数据库添加到数据库时它会输入两次。 我试着看看是否还有其他地方正在创建Beans并且我看不到任何东西

弹簧servlet.xml中

 <context:component-scan base-package="com.controllers"/>
<context:component-scan base-package="repositories"/>


<!-- This sets the default home page-->
<view-controller path="/" view-name="/login"/>
<!-- Sets the default path for all the Resources -->
<resources mapping="/resources/**" location="/resources/" />

<beans:bean id="dataSource"
            class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <beans:property  name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <beans:property name="url"
                    value="jdbc:mysql://localhost:3306/yossi2"/>
    <beans:property name="username" value="root" />
    <beans:property name="password" value="yossi" />
</beans:bean>

<!-- Hibernate 4 SessionFactory Bean definition -->
<beans:bean id="sessionFactory"
            class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <beans:property name="dataSource" ref="dataSource" />
    <beans:property name="annotatedClasses">
        <beans:list>
            <beans:value>models.entities.CardInUse</beans:value>
            <beans:value>models.entities.Cards</beans:value>
            <beans:value>models.entities.Customer</beans:value>
            <beans:value>models.entities.Purchases</beans:value>
            <beans:value>models.entities.Subscription</beans:value>
            <beans:value>models.entities.UserCredentials</beans:value>
            <beans:value>models.entities.Vendor</beans:value>
        </beans:list>
    </beans:property>
    <beans:property name="hibernateProperties">
        <beans:props>
            <beans:prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect
            </beans:prop>
            <beans:prop key="hibernate.show_sql">true</beans:prop>
            <beans:prop key="hibernate.format_sql">true</beans:prop>
        </beans:props>
    </beans:property>
</beans:bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

<beans:bean id="transactionManager"
            class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <beans:property name="sessionFactory" ref="sessionFactory" />
</beans:bean>

<beans:bean id="applicationContextProvder" class="com.controllers.ApplicationContextProvider"/>

@RequestMapping(value = "/db")
public String dbTester(){
    UserCredentialsRepository userCredentialsRepository = applicationContext.getBean(UserCredentialsRepository.class);
    UserCredentials user = new UserCredentials();
    user.setUsername("yossisilb");
    user.setPassword("hello");
    user.setGroup("admin");
    user.setVendor(null);

    userCredentialsRepository.saveUserCreds(user);
   return "vendorLanding";
}

我的知识库:

    @Repository
public class UserCredentialsRepository implements repositories.UserCredentialsRepository {

@Autowired
public SessionFactory sessionFactory;

@Transactional
public void saveUserCreds(UserCredentials creds) {
    sessionFactory.getCurrentSession().save(creds);
}

0 个答案:

没有答案