Hey Guys!

I use OpenJPA in tandem with SpringFramework. I wrote a simple application
which reads some data from MySQL database and faced very weird problem:
openjpa executes an "update" statement when only "select" query is used and
no object modifications are done. 

// My service's method looks like this one
@Transactional(readOnly=true)
public void test(String user) {
        Query query = m_entityManager.createQuery("select u from User u");
        List<User> users = (List<User>) query.getResultList();
        for (User u : users) {
                if (u.getLoginName().equals(user)) {
                        System.out.println("Bingo!");
                }
        }
}

// User class is very simple
@Entity
@Table(name="user")
public class User implements Serializable {
        @Id
        @Column(name="user_id")
        private int m_id;

        @Column(name="user_login_name")
        private String m_loginName;

        // getters and setters are omitted as not essential for problem
understanding
}

// and openjpa's log-output looks like the one below
openjpa.jdbc.SQL - <t 6533862, conn 16102116> executing prepstmnt 16900472
SELECT t0.user_id, t0.user_login_name from t0
openjpa.jdbc.SQL - <t 6533862, conn 16102116> [0 ms] spent
// and this is the problem :(((
openjpa.jdbc.SQL - <t 6533862, conn 16102116> executing prepstmnt 25980092
UPDATE user SET user_login_name = ? WHERE user_id = ? [params=(String) test,
(int) 1] 
openjpa.jdbc.SQL - <t 6533862, conn 16102116> [0 ms] spent


It is already three days I spent on fixing this problem with no real
success. Would someone help me please. :(

Thanks and best regards!
Sergej

-- 
View this message in context: 
http://n2.nabble.com/UPDATE-is-executed-when-only-SELECT-is-expected-tp1129924p1129924.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to