为实体类增删改之前添加校验

绝望的奶黄包 2017-05-26 01:12:47
最近的业务需求,要为所有的数据表添加一个belongId,只有数据所属人才允许操作这条数据。
目前的想法是写一个BelongBean,所有的entity都继承,更新程序进行统一查找后进行字段添加。
以上为背景。

现在要对所有的业务操作,查询另外考虑,主要是增删改。
即在维护实体bean时要校验belongId。
目前的方法是在BelongBean中使用

@PrePersist
@PreRemove
@PreUpdate
public void check() {
if (getBelongId != Utils.getUser().getId()) {
throw.......
}
}

但是发现一个问题,那就是抛出的异常无法自己定义
被被捕获后抛出
"Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction"
请问如何抛出自定义异常。或是有更好的处理方式。

如果可以,我更希望能将校验添加在逻辑层面,而不是数据库层面!
...全文
344 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yingheliujiaqi 2019-05-24
  • 打赏
  • 举报
回复
8888888
绝望的奶黄包 2017-06-02
  • 打赏
  • 举报
回复
不再@上面回答,如果是继承,你依旧无法修改JPA中抛出的异常。 至于如何自定义异常,根本没get到重点。 我需要的是一种能在持久化前进行数据校验的方法,或问题的解决思路。
podd 2017-05-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/duruiqi_fx/article/details/52014813
云墨浅殇 2017-05-26
  • 打赏
  • 举报
回复
可以试试封装一个自定义异常类.然后继承这个异常类

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧