Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Id column settable both automatically and manually

Hi,

I'm using MySQL and have the following entity:

class MyEntity {
  @Id
  @GeneratedValue(strategy=IDENTITY)
  @Column(name="id")
  private Integer id;
}

However, I would still like to be able to set the id manually!


The problem is that INSERT will never insert the id column. E.g., when
doing this:

  MyEntity e = new MyEntity();
  e.setId(15);
  em.persist(e);
  em.flush();
  em.refresh(e);

The following queries will be made:

INSERT INTO myEntities (col1, col2, col3) VALUES (?, ?, ?)
SELECT id, col1, col2, col3 FROM myEntities WHERE (id = 15)

And thus the id will still be auto-generated and the refresh() will
result in EntityNotFoundException.

If I don't set @GeneratedValue at all, then this case will work OK,
but when the value is autogenerated, LAST_INSERT_ID() won't be called.

Is it at all possible to have id columns settable both manually and
automatically, like in MySQL?

Regards,
Jaka


Back to the top