oracle 未找到要求的 from 关键字以及 乐观锁悲观锁

这种错误都是没有写对SQL语句,执行的时候保存。更多的是在select 很长的地方少写一个逗号。


Oracle  如果有版本号这样的乐观锁悲观锁。。那么不只是id来判断是不是为空。。需要将这个属性也加上。

如果没有写,被配置为version的这个字段。那么数据库也会报改对象为null的异常。 和没有主键id一样的错。

(注意,上面是关联对象的时候。子对象发生这样的情况。)


悲观锁: 在整个数据处理过程中,都是上锁状态,别人无法操作。

乐观锁:一般是版本号机制。在最后修改的时候,会进行一个验证。

**下面是看别人文章摘一些。

数据库的悲观锁机制

select * from account where name=”Erica” for update  。会将表account上锁。在事务提交的时候,会将锁给释放

hibernate的悲观锁机制

Query query = session.createQuery(hqlStr); 
query.setLockMode("user",LockMode.UPGRADE); // 加锁 

Hibernate 的加锁模式有: 

LockMode.NONE : 无锁机制。 
LockMode.WRITE : Hibernate 在 Insert 和 Update 记录的时候会自动 
获取。 
LockMode.READ : Hibernate 在读取记录的时候会自动获取。 
以上这三种锁机制一般由 Hibernate 内部使用,如 Hibernate 为了保证 Update 
过程中对象不会被外界修改,会在 save 方法实现中自动为目标对象加上 WRITE 锁。 
LockMode.UPGRADE :利用数据库的 for update 子句加锁。 
LockMode. UPGRADE_NOWAIT : Oracle 的特定实现,利用 Oracle 的 for 
update nowait 子句实现加锁。 


乐观锁:

hibernate中的乐观锁:

对表设置该属性。 

optimistic-lock 属性有如下可选取值: 
none 
无乐观锁 
version 
通过版本机制实现乐观锁 

需要对version字段,配置version。xml配置,需配在id之后。
dirty 
通过检查发生变动过的属性实现乐观锁 
all 
通过检查所有属性实现乐观锁 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值