小编jen*_*ens的帖子

Hibernate:脏检查和只更新脏属性?

在"好旧的JDBC时代"中,我编写了许多SQL代码,只对实际更改的"属性/成员"进行了非常有针对性的更新:

例如,考虑具有以下成员的对象:

public String name;
public String address;
public Date date;
Run Code Online (Sandbox Code Playgroud)

如果仅date在某些Business Method中更改,我只会UPDATE为该date成员发出SQL .

然而,似乎(这是我对Hibernate的"印象")当使用标准Hibernate映射(映射完整类)时,即使只有单个成员的更新也会导致Hibernate生成的SQL语句中对象的完全更新.

我的问题是:

  1. 这个观察是否正确,Hibernate 不会智能地检查(在完全映射的类中),哪些成员发生了更改,然后只发布特定更改成员的更新,而是始终更新(在生成的SQL Update语句中)所有映射成员(一个类),即使它们没有被更改(如果由于一个成员变脏而导致对象变脏...)

  2. 我该怎么做才能让Hibernate更新那些已被更改的成员?我正在寻找一个解决方案让Hibernate只更新实际更改的成员.

(我知道Hibernate在脏检查方面做了很多工作,但据我所知,这个脏检查只与识别整个对象是否脏,而不是单个成员是脏的有关.)

java hibernate

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

Java并发:同步(this)=>和this.wait()和this.notify()

感谢您帮助理解"并发示例":http: //forums.sun.com/thread.jspa?threadID = 735386

Qute开始:

public synchronized void enqueue(T obj) {
    // do addition to internal list and then...
    this.notify();
}

public synchronized T dequeue() {
    while (this.size()==0) {
        this.wait(); 
    }
    return // something from the queue
}
Run Code Online (Sandbox Code Playgroud)

报价结束:

我的问题是:为什么这段代码有效?

=>当我同步像" public synchronized"=> 这样的方法时,我同步"对象的实例==> this".但是在上面的例子中:

  1. 呼叫"出列"我将打开"锁定/监视器" this

  2. 现在我在出队方法.由于列表为零,调用线程将为" waited"

  3. 根据我的理解,我现在有一个死锁情况,因为我没有机会接受一个对象(来自另一个线程),因为"dequeue"方法尚未完成并且dequeue"方法"保持锁定this:所以我永远不会有可能称之为"enequeue",因为我不会得到this"锁定".

Backround:我有完全相同的问题:我有一些连接池(连接列表),如果检查所有连接,需要阻止.如果大小超过限制或为零,将List同步到阻止的正确方法是什么?

非常感谢你

java concurrency

3
推荐指数
1
解决办法
7212
查看次数

Java编译器:优化"级联"ifs和最佳实践?

Java编译器是否优化了这样的语句

if (a == true) {
 if (b == true) {
  if (c == true) {
   if(d == true) {
       //code to process stands here
   }
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

if (a == true && b==true && c==true && d == true)
Run Code Online (Sandbox Code Playgroud)

所以这是我的第一个问题:两者都采用完全相同的"CPU周期",或者是第一个"慢"的变体.

我的第二个问题是,第一个带有级联的变体,如果被认为是糟糕的编程风格,因为它是如此冗长?

(我喜欢第一个变体,因为我可以更好地逻辑分组我的表达式并更好地评论它们(我的if语句比示例中的更复杂),但也许这是糟糕的编程风格?)甚至更慢,这就是我要问的原因.. .

谢谢Jens

java optimization

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

标签 统计

java ×3

concurrency ×1

hibernate ×1

optimization ×1