Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.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 数据未存储在数据库中_Java_Hibernate_Spring - Fatal编程技术网

Java 数据未存储在数据库中

Java 数据未存储在数据库中,java,hibernate,spring,Java,Hibernate,Spring,我在netbeans中实现springs和hibernate注释。当我试图在数据库中保存数据时,它没有发生。当我从netbeans启动应用程序时,正在创建表,但无法在其中存储数据 <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="org.apache.

我在netbeans中实现springs和hibernate注释。当我试图在数据库中保存数据时,它没有发生。当我从netbeans启动应用程序时,正在创建表,但无法在其中存储数据

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver"/>
    <property name="url" value="jdbc:derby://localhost:1527/seed"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="myDataSource" />
    <property name="annotatedClasses">
        <list>
            <value>com.vaannila.domain.User</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

com.vaannila.domain.User
org.hibernate.dialogue.derbydialogue
真的
更新
dao类:

@Repository("userDao")
public class UserDAOImpl implements UserDAO {

@Autowired
private SessionFactory sessionFactory;

/*public void setSessionFactory(SessionFactory sessionFactory) {
    this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}*/

@Override
public void saveUser(User user) {
    sessionFactory.getCurrentSession().saveOrUpdate (user);
}

@Override
@SuppressWarnings("unchecked")
public List<User> listUser() {
    return (List<User>) sessionFactory.getCurrentSession().
                    createCriteria ( User.class ).list(); 
}

}
@Repository(“userDao”)
公共类UserDAOImpl实现UserDAO{
@自动连线
私人会话工厂会话工厂;
/*public void setSessionFactory(SessionFactory SessionFactory){
this.hibernateTemplate=新的hibernateTemplate(sessionFactory);
}*/
@凌驾
公共void saveUser(用户){
sessionFactory.getCurrentSession().saveOrUpdate(用户);
}
@凌驾
@抑制警告(“未选中”)
公共列表listUser(){
返回(列表)sessionFactory.getCurrentSession()。
createCriteria(User.class).list();
}
}
服务类别:

@Service("userService")
@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class UserServiceImpl implements UserService {

    @Autowired
private UserDAO userDAO;

    @Override
public void saveUser(User user) {
    userDAO.saveUser(user);
}

@Override
@SuppressWarnings("unchecked")
public List<User> listUser() {
    return userDAO.listUser();
}

}
@Service(“用户服务”)
@事务性(传播=propagation.SUPPORTS,只读=true)
公共类UserServiceImpl实现UserService{
@自动连线
私有UserDAO UserDAO;
@凌驾
公共void saveUser(用户){
userDAO.saveUser(用户);
}
@凌驾
@抑制警告(“未选中”)
公共列表listUser(){
返回userDAO.listUser();
}
}
请帮帮我


提前感谢

问题是您使用的事务在服务中被标记为回滚(只读)

因此,您需要将
@Transaction(readOnly=false)
添加到触发项目存储操作的控制器、服务方法或dao中

例如:

@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class UserServiceImpl implements UserService {

    ...

    //Do not role back this transaction
    @Transactional(propagation=Propagation.SUPPORTS, readOnly=false)
    @Override
    public void saveUser(User user) {
       userDAO.saveUser(user);
    }
}


@请参阅表单中的一些详细信息。问题是您使用的事务在服务中被标记为回滚(只读)

因此,您需要将
@Transaction(readOnly=false)
添加到触发项目存储操作的控制器、服务方法或dao中

例如:

@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class UserServiceImpl implements UserService {

    ...

    //Do not role back this transaction
    @Transactional(propagation=Propagation.SUPPORTS, readOnly=false)
    @Override
    public void saveUser(User user) {
       userDAO.saveUser(user);
    }
}


@请参阅表格中的一些详细信息

是否有例外情况?您是否有任何可以共享的调试日志记录?如何知道它是否存储在数据库中?日志记录?TransactionManager的配置在哪里?数据必须在事务中更改。詹姆斯:我检查了我的数据库,看看是否存储了数据。但是表中没有记录。彼得:我已经配置了事务管理器。我错过了我的代码片段中的代码。你有例外吗?您是否有任何可以共享的调试日志记录?如何知道它是否存储在数据库中?日志记录?TransactionManager的配置在哪里?数据必须在事务中更改。詹姆斯:我检查了我的数据库,看看是否存储了数据。但是表中没有记录。彼得:我已经配置了事务管理器。我错过了我的代码片段中的代码。非常感谢,拉尔夫。这很有魅力。你能给我推荐一个链接或网站,我可以在那里深入了解这个交易支持。@Junaidaj:我已经添加了一个对答案的引用,非常感谢拉尔夫。这很有魅力。你能给我推荐一个链接或网站,让我可以深入了解这个交易支持。@Junaidaj:我已经添加了一个对答案的引用