小编Mos*_*Boy的帖子

注释@Transactional.如何回滚?

我成功地为Dao类使用了这个注释.并且回滚适用于测试.

但现在我需要回滚实际代码,而不仅仅是测试.在测试中使用特殊注释.但是哪些注释适用于非测试代码?这对我来说是个大问题.我已经花了一天时间.官方文件不符合我的需要.

class MyClass { // this does not make rollback! And record appears in DB.
        EmployeeDaoInterface employeeDao;

        public MyClass() {
            ApplicationContext context = new ClassPathXmlApplicationContext(
                    new String[] { "HibernateDaoBeans.xml" });
            employeeDao = (IEmployeeDao) context.getBean("employeeDao");
         }

        @Transactional(rollbackFor={Exception.class})
    public void doInsert( Employee newEmp ) throws Exception {
        employeeDao.insertEmployee(newEmp);
        throw new RuntimeException();
    }
}
Run Code Online (Sandbox Code Playgroud)

employeeDao是

@Transactional
public class EmployeeDao implements IEmployeeDao {
    private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    public void insertEmployee(Employee emp) {
        sessionFactory.getCurrentSession().save(emp);
    }
} …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate

78
推荐指数
3
解决办法
11万
查看次数

在C++中编译SQlite3

我用这种方式编译代码:

g++ main.cpp -I sqlite3
Run Code Online (Sandbox Code Playgroud)

其中sqlite3是我从sqlite-amalgamation-3071100.zip收到的源文件的文件夹,-I是包含源的标志.

该存档包含:shell.c,sqlite3.c,sqlite3.h,sqlite3ext.h.

这是我收到的:

undefined reference to `sqlite3_open'
Run Code Online (Sandbox Code Playgroud)

该程序只包含#include和函数调用sqlite3_open(...);


如果我制作"sudo apt-get install libsqlite3-dev"并使用命令编译程序,我可以编译好

g++ main.cpp -lsqlite3

但我想解决这个问题,因为我不想在另一台计算机上安装一些库,我无法访问它!

c++ sqlite compilation g++

16
推荐指数
2
解决办法
2万
查看次数

我可以通过G ++使用CUDA和C++程序吗?或者CUDA只能用GCC编译?

当我将程序与CUDA并行时,我还没有达到阶段,但我使用C++而不是C而且我担心如果我的程序不能用CUDA编译!

有人可以找到这笔交易的证据.

c c++ cuda g++ nvidia

0
推荐指数
1
解决办法
1278
查看次数

标签 统计

c++ ×2

g++ ×2

c ×1

compilation ×1

cuda ×1

hibernate ×1

java ×1

nvidia ×1

spring ×1

sqlite ×1