Hi,
I've been searching for alternative ORM for our Hibernate + JPA
solution. I ended up with Ebean as it suits me best.
Anyway, in our current solution we have most entities to extend a
IdBeanEntity which looks like this:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class IdBeanEntity implements IdBean, EntityBean {
@Id @GeneratedValue(strategy = GenerationType.SEQUENCE)
protected Long id;
.....
}
So when I need another entity with Long id, I just do:
@Entity
@Table(name = "users")
public class User extends IdBeanEntity {
private String username;
private String password;
.....
}
When I try selecting Ebean.find(User.class, 1851519l) I get an
exception:
javax.persistence.PersistenceException: Query threw
SQLException:ERROR: syntax error at or near "t0"
Bind values:[1867776]
Query was:
select t0.dtype as c0,
t0.id as c1, t0.username as c2, t0.password as
c3, t0.accumulated_discount as c4, t0.registered as c5, t0.last_login
as c6, t0.locale as c7, t0.balance as c8
from users t0
where t0. and
t0.id = ?
at
com.avaje.ebeaninternal.server.query.CQuery.createPersistenceException(CQuery.java:
849)
at
com.avaje.ebeaninternal.server.query.CQuery.createPersistenceException(CQuery.java:
829)
at
com.avaje.ebeaninternal.server.query.CQueryEngine.find(CQueryEngine.java:
290)
at
com.avaje.ebeaninternal.server.query.DefaultOrmQueryEngine.findId(DefaultOrmQueryEngine.java:
154)
at
com.avaje.ebeaninternal.server.core.OrmQueryRequest.findId(OrmQueryRequest.java:
310)
at
com.avaje.ebeaninternal.server.core.DefaultServer.findId(DefaultServer.java:
1187)
at
com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:
1091)
at
com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:
1078)
at com.avaje.ebean.Ebean.find(Ebean.java:855)
Tried it with and without enhanced approach - same result.
I can assume from the SQL query, that Ebean tries to select
discriminator type or something, but I don't need discriminator having
inheritance strategy "Table per class".
Does Ebean support "Table per class" inheritance strategy?