Community
Participate
Working Groups
Build Identifier: eclipselink-2.3.0.v20110604-r9504 Using entity: @Entity @Table(name="EMPLOYEE") public class Employee implements java.io.Serializable { private int id; private String firstName; private String lastName; private float salary; public Employee() { } public Employee(int id, String firstName, String lastName, float salary) { this.id = id; this.firstName = firstName; this.lastName = lastName; this.salary = salary; } // =========================================================== // getters and setters for the state fields @Id @Column(name="ID") public int getId() { return id; } public void setId(int id) { this.id = id; } @Column(name="FIRSTNAME") public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } @Column(name="LASTNAME") public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Column(name="SALARY") public float getSalary() { return salary; } public void setSalary(float salary) { this.salary = salary; } ------------------ client code: et.begin(); System.out.println("Invoking query"); em.createQuery("UPDATE Employee e SET e.salary = e.salary * 10.0").getLockMode(); System.out.println("IllegalStateException was not thrown"); et.commit(); } catch (IllegalStateException ise) { System.out.println("Exception Caught as Expected"); } catch (Exception e) { System.out.println("Unexpected exception occurred", e); e.printStackTrace(); } ------------------ output: Invoking query Unexpected exception occurred java.lang.IllegalArgumentException: A lock type can only be used with a select query (which allows the database to be locked where necessary). at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getLockMode(EJBQueryImpl.java:625) Reproducible: Always
Updating target milestone.
I am seeing the IllegalStateException in the current version.
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink