Herencia de una sola tabla SIN columna discriminante

Buenos días, mis queridos camaradas,

Esto está empezando a ser molesto, algo simple, pero horas de lucha, ¿me estoy haciendo viejo?

Estoy tratando de asignar dos clases a una sola tabla usando JPA de Hibernate. La idea es tener solo un pequeño subconjunto de columnas en la clase principal y un conjunto más grande / completo en la clase secundaria. No hay herencia de TABLA involucrada, solo herencia de clase. ¿¿Cómo se puede lograr esto?

Hacer esto no funcionará:

@Entity
@Table(name = "the_table")
class Parent implements Serializable {
}

@Entity
@Table(name = "the_table")
class Child extends Parent implements Serializable {
}

Hibernate asume la estrategia de herencia predeterminada InheritanceType.SINGLE_TABLE, y está buscando la columna discriminadora - DTYPE por defecto. Pero espere: no hay herencia de tabla, tener la columna discriminadora no tiene sentido.

También he echado un vistazo a PolymorphismType.EXPLICIT, que no marcó ninguna diferencia. El seguimiento de la pila es:

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'apprentice0_.DTYPE' in 'where clause'
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
   at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
   at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
   at com.mysql.jdbc.Util.getInstance(Util.java:386)
   at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
   at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
   at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
   at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
   at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
   at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
   at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2281)
   at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
   at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
   at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
   at org.hibernate.loader.Loader.doQuery(Loader.java:697)
   at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
   at org.hibernate.loader.Loader.loadEntity(Loader.java:1881)

yeah, una cosa más:

Los@MappedSuperclass y@Embeddable no sirven de nada ya que no se pueden usar junto con@Entity - la clase padre tiene que ser una@Entity en sí mismo, ya que se usa para persistencia en otros lugare

Respuestas a la pregunta(4)

Su respuesta a la pregunta