Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 Hibernate即使调试正常也不删除对象?_Java_Spring_Hibernate_Spring Mvc - Fatal编程技术网

Java Hibernate即使调试正常也不删除对象?

Java Hibernate即使调试正常也不删除对象?,java,spring,hibernate,spring-mvc,Java,Spring,Hibernate,Spring Mvc,我正在尝试使用Hibernate删除一个对象,但没有删除 我调试了程序以确保对象是正确的,所以我猜问题可能出在我不知道是什么的地方。。。注释,配置??也许有人能帮忙 节目如下: 控制器: // Erased the imports to make it simpler @RestController public class Controlador { @Autowired private FisicHostDao fisicHostDao; @Autowired

我正在尝试使用Hibernate删除一个对象,但没有删除

我调试了程序以确保对象是正确的,所以我猜问题可能出在我不知道是什么的地方。。。注释,配置??也许有人能帮忙

节目如下:

控制器

// Erased the imports to make it simpler

@RestController
public class Controlador {

    @Autowired
    private FisicHostDao fisicHostDao;
    @Autowired
    private CredentialService credentialService;

    @RequestMapping(value = "/fisicHost/{id}/credentials", method = RequestMethod.GET, produces = APPLICATION_JSON_UTF8_VALUE)
    public List<Credential> credentialsByFisicHost(@PathVariable(value = "id") final Long fisicHostId, ModelMap modelMap){
        FisicHost optionalFisicHost = fisicHostDao.findById(fisicHostId);

        if (optionalFisicHost == null) {
            // Responder con 404
        }
        FisicHost fisicHost = optionalFisicHost;
        return fisicHost.getCredentials();
    }

    // This is the method handling the request / response

    @RequestMapping(value = "/fisicHost/{id}/credentials", method = RequestMethod.POST)
    public String deleteCredential(@PathVariable(value = "id") String credId){
        String[] parts = credId.split("-");
        int id = Integer.parseInt(parts[1]);
        Credential c = credentialService.getCredentialById(id);
        credentialService.delete(c);
        return "justreturnsomething";
    }
}
//删除导入以使其更简单
@RestController
公共类控制程序{
@自动连线
私人菲斯霍斯特道菲斯霍斯特道;
@自动连线
私人证书服务;
@RequestMapping(value=“/fisicHost/{id}/credentials”,method=RequestMethod.GET,products=APPLICATION\u JSON\u UTF8\u value)
公共列表凭证BYFISICHOST(@PathVariable(value=“id”)最终长fisicHostId,ModelMap ModelMap){
FisicHost optionalFisicHost=fisicHostDao.findById(fisicHostId);
如果(可选FISICHOST==null){
//应答器CON404
}
FisicHost FisicHost=可选FisicHost;
返回fisihost.getCredentials();
}
//这是处理请求/响应的方法
@RequestMapping(value=“/fisicHost/{id}/credentials”,method=RequestMethod.POST)
公共字符串deleteCredential(@PathVariable(value=“id”)字符串credId){
String[]parts=credId.split(“-”);
int id=Integer.parseInt(部分[1]);
凭证c=凭证服务。getCredentialById(id);
证书服务。删除(c);
return“justreturnsomething”;
}
}

正如您在图片中看到的,对象不是空的,它确实匹配我要删除的对象


那么为什么不删除呢?

我猜您需要提交一个事务,以便将删除操作提交到数据库

例如:


我猜您需要提交一个事务,以便将删除操作提交到数据库

例如:


也许您需要提交一个事务?这是我的DAO中用于删除的代码。。。可以吗
public void delete(凭证凭证){Session Session=sessionFactory.openSession();Session.delete(凭证);Session.close();}
Well。。。就是这样!!谢谢兄弟。。。我在谷歌上搜索事务,并在代码中添加了以下行:
Session Session=sessionFactory.openSession();session.beginTransaction();会话删除(凭证);session.getTransaction().commit();session.close()如果你想把它作为一个答案发布并解释一点,我会接受你的回答也许你需要提交一个事务?这是我DAO中用于删除的代码。。。可以吗
public void delete(凭证凭证){Session Session=sessionFactory.openSession();Session.delete(凭证);Session.close();}
Well。。。就是这样!!谢谢兄弟。。。我在谷歌上搜索事务,并在代码中添加了以下行:
Session Session=sessionFactory.openSession();session.beginTransaction();会话删除(凭证);session.getTransaction().commit();session.close()如果你想把它作为一个答案,并解释一点,我会接受你的答案
Session session = sessionFactory.openSession();
try {
   session.beginTransaction();
   try {   
      doHibernateStuff(session);
      session.getTransaction().commit(); 
   } catch (Exception e) {
      session.getTransaction().rollback();
      throw e;
   } 
} finally {
   session.close();
}