Java Hibernate即使调试正常也不删除对象?
我正在尝试使用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
// 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();
}