Erro javax.persistence.RollbackException na estrategia herança com JPA

Olá pessoal,

Estou fazendo um projeto utilizando JPA, porém estou com um erro ao fazer a estrategia herança do tipo single table. O erro é o seguinte.
Exception in thread “main” javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERRO: coluna “dtype” da relação “anexo” não existe
Posição: 50
Error Code: 0
Call: INSERT INTO ANEXO (DESCRICAO, POSICAONOLEMBRETE, DTYPE) VALUES (?, ?, ?)
bind => [jjjj, 22, Anexo]
Query: InsertObjectQuery(com.ads.bd2.agenda.modelo.Anexo@1045b48)
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:159)
at com.ads.bd2.agenda.app.EstrategiasHeranca.main(EstrategiasHeranca.java:71)
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.6.4.v20160829-44060b6): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.postgresql.util.PSQLException: ERRO: coluna “dtype” da relação “anexo” não existe
Posição: 50
Error Code: 0
Call: INSERT INTO ANEXO (DESCRICAO, POSICAONOLEMBRETE, DTYPE) VALUES (?, ?, ?)
bind => [jjjj, 22, Anexo]
Query: InsertObjectQuery(com.ads.bd2.agenda.modelo.Anexo@1045b48)
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:340)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processExceptionForCommError(DatabaseAccessor.java:1620)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:900)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeNoSelect(DatabaseAccessor.java:964)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:633)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:560)
at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2056)
at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:306)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:242)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:228)
at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.insertObject(DatasourceCallQueryMechanism.java:377)
at org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:165)
at org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:180)
at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:489)
at org.eclipse.persistence.queries.InsertObjectQuery.executeCommit(InsertObjectQuery.java:80)
at org.eclipse.persistence.queries.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:90)
at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:301)
at org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58)
at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:904)
at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:803)
at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:108)
at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:85)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2896)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1857)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1839)
at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1790)
at org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:227)
at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsForClassWithChangeSet(CommitManager.java:194)
at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:139)
at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:4264)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1441)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1531)
at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.commitRootUnitOfWork(RepeatableWriteUnitOfWork.java:278)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitAndResume(UnitOfWorkImpl.java:1169)
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:134)
… 1 more
Caused by: org.postgresql.util.PSQLException: ERRO: coluna “dtype” da relação “anexo” não existe
Posição: 50
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2476)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2189)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(DatabaseAccessor.java:892)
… 33 more
As minhas classes são:

@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Anexo {

@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long id;


private String descricao;

private int posicaoNoLembrete;


public String getDescricao() {
	return descricao;
}

public void setDescricao(String descricao) {
	this.descricao = descricao;
}

public int getPosicaoNoLembrete() {
	return posicaoNoLembrete;
}

public void setPosicaoNoLembrete(int posicaoNoLembrete) {
	this.posicaoNoLembrete = posicaoNoLembrete;
}

}

@Entity
public class Imagem extends Anexo {

private String caminhoSistemaArquivos;

public String getCaminhoSistemaArquivos() {
	return caminhoSistemaArquivos;
}

public void setCaminhoSistemaArquivos(String caminhoSistemaArquivos) {
	this.caminhoSistemaArquivos = caminhoSistemaArquivos;
}

}

@Entity
public class Local extends Anexo {

private String cep;

private String cidade;

private String estado;

private String pais;

public String getCep() {
	return cep;
}

public void setCep(String cep) {
	this.cep = cep;
}

public String getCidade() {
	return cidade;
}

public void setCidade(String cidade) {
	this.cidade = cidade;
}

public String getEstado() {
	return estado;
}

public void setEstado(String estado) {
	this.estado = estado;
}

public String getPais() {
	return pais;
}

public void setPais(String pais) {
	this.pais = pais;
}

}

@Entity
public class URL extends Anexo{

private String link;


public String getLink() {
	return link;
}

public void setLink(String link) {
	this.link = link;
}

}

O main:
public class EstrategiasHeranca {

public static void main(String[] args) {
	
	
	EntityManager em = DAOJPA.createAndInitEntityManager(); // ---> chamando o EntityManager
	em.getTransaction().begin();// ---> abrindo a transacao

	DAOJPA<Anexo> daoAnexo = new DAOJPAAnexo(em);
	DAOJPA<Imagem> daoImagem = new DAOJPAImagem(em);
	DAOJPA<Local> daoLocal = new DAOJPALocal(em);
	DAOJPA<URL> daoUrl = new DAOJPAUrl(em);
	
	Anexo anexo = new Anexo();
	anexo.setDescricao("jjjj");
	anexo.setPosicaoNoLembrete(22);
	
	
	Imagem imagem = new Imagem();
	imagem.setCaminhoSistemaArquivos("kkkkllll");
	imagem.setDescricao("Primeira tentativa");
	imagem.setPosicaoNoLembrete(1);
	
	
	Local local = new Local();
	local.setCep("58.5000-00");
	local.setCidade("Monteiro");
	local.setEstado("Paraíba");
	local.setPais("Brasil");
	local.setDescricao("Primeira tentativa");
	local.setPosicaoNoLembrete(1);
	
	
	URL url = new URL();
	url.setLink("https://drive.google.com/drive/folders/0B8HZqr1FiYrmcU1fY1ptejVPT00");
	url.setDescricao("Primeira tentativa");
	url.setPosicaoNoLembrete(1);
	
	daoAnexo.create(anexo);
	daoImagem.create(imagem);
	daoLocal.create(local);
	daoUrl.create(url);
	
	
			
    em.getTransaction().commit();//---> fechando a transacao
	daoAnexo.closeEntityManager();
}

}
E o xml:

<?xml version="1.0" encoding="UTF-8"?>


	<!-- PERSISTENCE PROVIDER, DE ACORDO COM A IMPLEMENTACAO JPA ADOTADA -->
	<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
	
	<!-- LISTAGEM DE CLASSES PERSISTENTES QUE TERAO ANNOTATIONS A SEREM PROCESSADAS -->
	<class>com.ads.bd2.agenda.modelo.Anexo</class>
	<class>com.ads.bd2.agenda.modelo.Imagem</class>
	<class>com.ads.bd2.agenda.modelo.Local</class>
	<class>com.ads.bd2.agenda.modelo.URL</class>
	
			
	<properties>
		<!-- PROPRIEDADES JDBC PARA O POSTGRESQL -->
		<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
		<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/bd2note" />
		<property name="javax.persistence.jdbc.user" value="postgres" />
		<property name="javax.persistence.jdbc.password" value="janeide" />
		
		<!-- PROPRIEDADES ESPECÍFICAS PARA O PROVEDOR JPA ECLIPSELINK --><property
			name="eclipselink.ddl-generation" value="drop-and-create-tables" />
		<property
			name="eclipselink.create-ddl-jdbc-file-name" value="createDDL_ddlGeneration.jdbc" />
		<property
			name="eclipselink.drop-ddl-jdbc-file-name" value="dropDDL_ddlGeneration.jdbc" />
		<property
			name='eclipselink.ddl-generation.output-mode' value='both' />
		<property name="eclipselink.logging.timestamp" value="true" />
		<property name="eclipselink.logging.session" value="true" />
		<property name="eclipselink.logging.exceptions" value="true" />
		<property name="eclipselink.logging.level" value="FINE"/>
		<property name="eclipselink.ddl-generation" value="create-tables" />
	</properties>
</persistence-unit>

Se alguém poder me ajudar.

INSERT INTO ANEXO (DESCRICAO, POSICAONOLEMBRETE, DTYPE) VALUES (?, ?, ?)

DESC anexo; Verifica sua tabela

sua tabela anexo não tem coluna DTYPE, e ele está tentando inserir dados nessa coluna.
outra observação, Acredito* que sua classe Anexo deveria ser abstrata
E conter a seguinte anotação

@DiscriminatorColumn(name=“classe tipo”)

e suas filhas

@DiscriminatorValue(“Imagem”)
@DiscriminatorValue(“Url”)

Para conseguirem diferenciar dentro da tabela, já que tudo será mesclado em uma só.