Maybe the DB settings could have something to do with it? I'm using
MySQL with it's default setup which uses InnoDB. I notice in the
documentation that "InnoDB, with innodb_flush_log_at_trx_commit set to
1, flushes the transaction log after each transaction, greatly improving
reliability."
Could some DB setting like this be causing the issue?
On 7/8/2012 3:39 PM, Romain Manni-Bucau wrote:
can you share a small sample to reproduce it, will be easier to help you?
- Romain
2012/7/8 David Nordahl<da...@thinkology.org>
Not that I've configured.. Unless one of the annotations creates one:
@Entity
@Table(name = "user")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u"),
@NamedQuery(name = "User.findByUserId", query = "SELECT u FROM User u
WHERE u.userId = :userId"),
@NamedQuery(name = "User.findByUserName", query = "SELECT u FROM User
u WHERE u.userName = :userName"),
@NamedQuery(name = "User.findByPassword", query = "SELECT u FROM User
u WHERE u.password = :password"),
@NamedQuery(name = "User.findByEmail", query = "SELECT u FROM User u
WHERE u.email = :email"),
@NamedQuery(name = "User.findByFirstName", query = "SELECT u FROM User
u WHERE u.firstName = :firstName"),
@NamedQuery(name = "User.findByLastName", query = "SELECT u FROM User
u WHERE u.lastName = :lastName"),
@NamedQuery(name = "User.findByLoginFailures", query = "SELECT u FROM
User u WHERE u.loginFailures = :loginFailures"),
@NamedQuery(name = "User.findByLastLoginFailure", query = "SELECT u
FROM User u WHERE u.lastLoginFailure = :lastLoginFailure")})
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "user_id")
private Integer userId;
@Basic(optional = false)
@Column(name = "user_name")
private String userName;
@Basic(optional = false)
@Column(name = "password")
private String password;
@Column(name = "email")
private String email;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "login_failures")
private Integer loginFailures;
@Column(name = "last_login_failure")
@Temporal(TemporalType.**TIMESTAMP)
private Date lastLoginFailure;
@JoinColumn(name = "associated_customer", referencedColumnName =
"customer_id")
@ManyToOne
On 7/8/2012 3:25 PM, Romain Manni-Bucau wrote:
Hi,
any entity listener playing with id or special field on User entity?
- Romain
2012/7/8 David Nordahl<da...@thinkology.org>
I'm attempting the code:
Properties properties = new Properties();
properties.setProperty(****Context.INITIAL_CONTEXT_****FACTORY,
"org.apache.openejb.client.****LocalInitialContextFactory");
InitialContext initialContext = new InitialContext(properties);
Object object = initialContext.lookup("****UserFacadeLocal");
UserFacadeLocal userFacade = (UserFacadeLocal) object;
User newuser = new User();
newuser.setEmail("c...@cow.moo"****);
newuser.setUserName("steve");
newuser.setPassword("cows");
userFacade.create(newuser);
but keep getting "org.apache.openjpa.****persistence.****
InvalidStateException:
Detected reentrant flush. Make sure your flush-time instance callback
methods or event listeners do not invoke any operations that require the
in-progress flush to complete."
I tried setting "openjpa.FlushBeforeQueries" to false just to see if I
can
get the error to go away, but it makes no difference. I can't find a
flush() call in my project and according to the table in the docs, flush
is
not called if this parameter is set. What am I not doing correctly here?
Thank you,
David