Mapeamento de Interface com @Any

To tentando mapear uma associação de classes no hibernate através de uma Interface, com a annotation @Any.
O caso é o seguinte: Eu tenho a interface ContaTitular e as classes Funcionario, Empresa e Pessoa que a implementam.

O código da interface ContaTitular é esse:

public interface ContaTitular extends Serializable {

    public Long getId();

}

A classe Conta possui dois atributos de ContaTitular, que estão mapeados da seguinte forma:

	@Any(metaColumn = @Column(name = "tipo_titular"))
    @AnyMetaDef(
        idType = "long",
        metaType = "string",
        metaValues = {
            @MetaValue(value = "Funcionario", targetEntity = Funcionario.class),
            @MetaValue(value = "Empresa", targetEntity = Empresa.class),
            @MetaValue(value = "Pessoa", targetEntity = Pessoa.class)
        }
    )
    @JoinColumn(name = "id_titular")
    private ContaTitular titular;

    @Any(metaColumn = @Column(name = "tipo_associado"))
    @AnyMetaDef(
        idType = "long",
        metaType = "string",
        metaValues = {
            @MetaValue(value = "Funcionario", targetEntity = Funcionario.class),
            @MetaValue(value = "Empresa", targetEntity = Empresa.class),
            @MetaValue(value = "Pessoa", targetEntity = Pessoa.class)
        }
    )
    @JoinColumn(name = "id_associado")
    private ContaTitular associado;

O mapeamento funciona normalmente, o problema está em quando eu preciso fazer uma consulta e pegar o titular ou o associado da conta. Estou tentando por Criteria, com o seguinte código:

public ContaTitular getContaTitular(Conta conta) {
	Criteria criteria = pm.createCriteria(Conta.class).setFetchMode("titular", FetchMode.SELECT);
	criteria.add(Restrictions.eq("id", conta.getId()));
	if (criteria.uniqueResult() != null)
		return ((Conta)criteria.uniqueResult()).getTitular();
	return null;
}

Está dando a seguinte exception:

Caused by: java.lang.UnsupportedOperationException: any types do not have a unique referenced persister
        at org.hibernate.type.AnyType.getAssociatedJoinable(AnyType.java:329)
        at org.hibernate.loader.JoinWalker.addAssociationToJoinTree(JoinWalker.java:221)
        at org.hibernate.loader.JoinWalker.addAssociationToJoinTreeIfNecessary(JoinWalker.java:196)
        at org.hibernate.loader.JoinWalker.walkEntityAssociationTree(JoinWalker.java:379)
        at org.hibernate.loader.JoinWalker.walkEntityTree(JoinWalker.java:405)
        at org.hibernate.loader.JoinWalker.walkEntityTree(JoinWalker.java:270)
        at org.hibernate.loader.AbstractEntityJoinWalker.initAll(AbstractEntityJoinWalker.java:69)
        at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:113)
        at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82)
        at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:91)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1577)
        at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
        at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
        at br.com.b2ml.PlanetConnection.ejb.financeiro.FinanceiroRepositoryBean.getTitularContaSaldo(FinanceiroRepositoryBean.java:577)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4011)
        at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:197)
        ... 80 more

Alguém tem alguma solução? Achei um caso semelhante no fórum do hibernate mas sem resposta =/

https://forums.hibernate.org/viewtopic.php?f=1&t=978164&start=0

Conseguiu resolver ? estou com o mesmo problema.