Object in Uso na hora de criar a foreign key

Pessoal estou tentando fazer com que o próprio hibernate crie a foreign key, porém ele me resulta um erro dizendo que o objeto está em uso.

Aproveitando, gostaria de saber qual é a especificação completa para que o Hibernate crie o generator.

Entidade:

package model;

import javax.persistence.AccessType;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratorType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

@Entity(access = AccessType.FIELD)
@Table(name = "CATEGORIAS")
public class Categorias {
	
	@Column(name = "ID_CATEGORIA")
//	@Id(generate=GeneratorType.SEQUENCE, generator="GEN_ID_CATEGORIA")
    //@Id(generate = GeneratorType.AUTO, generator="GEN_ID_CATEGORIA")
	@Id(generate = GeneratorType.AUTO)
	private int idCategoria;
	@Column(length = 40)
	private String descricao;
	@Column(length = 1)	
	private char tipo;	
    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "idUsuario", updatable = false)
    @PrimaryKeyJoinColumn   
	private Usuarios usuarios;

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public int getIdCategoria() {
		return idCategoria;
	}

	public void setIdCategoria(int idCategoria) {
		this.idCategoria = idCategoria;
	}

	public char getTipo() {
		return tipo;
	}

	public void setTipo(char tipo) {
		this.tipo = tipo;
	}

	public Usuarios getUsuarios() {
		return usuarios;
	}

	public void setUsuarios(Usuarios usuarios) {
		this.usuarios = usuarios;
	}


}

/*
 Criado por : André Reis
 Data : 15/08/2005 - 12:52:38
 Nome do Arquivo : Usuarios.java
 Nome do Pacote : model

 Copyright® 15/08/2005

 */
package model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.AccessType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratorType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity(access = AccessType.FIELD)
@Table(name = "USUARIOS")
public class Usuarios {

	@Column(name = "idUsuario")
	//@Id(generate=GeneratorType.SEQUENCE, generator="GEN_ID_USUARIO")
	@Id(generate = GeneratorType.AUTO)
	private int idUsuario;

	@Column(length = 50)
	private String Nome;

	@Column(length = 12)
	private String Login;

	@Column(length = 12)
	private String Senha;

	@OneToMany(mappedBy = "usuarios")
	private Set<Categorias> categorias = new HashSet<Categorias>();
	

	public String getLogin() {
		return Login;
	}

	public void setLogin(String login) {
		Login = login;
	}

	public String getNome() {
		return Nome;
	}

	public void setNome(String nome) {
		Nome = nome;
	}

	public String getSenha() {
		return Senha;
	}

	public void setSenha(String senha) {
		Senha = senha;
	}

	public Set<Categorias> getCategorias() {
		return categorias;
	}

	public void setCategorias(Set<Categorias> categorias) {
		this.categorias = categorias;
	}

	public int getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario = idUsuario;
	}

}

Log:

14:52:58,016 DEBUG SchemaUpdate:142 - alter table CATEGORIAS add constraint FK6A3131A073A54DFD foreign key (idUsuario) references USUARIOS
14:52:58,076 ERROR SchemaUpdate:148 - Unsuccessful: alter table CATEGORIAS add constraint FK6A3131A073A54DFD foreign key (idUsuario) references USUARIOS
14:52:58,076 ERROR SchemaUpdate:149 - Resource Exception. unsuccessful metadata update
object USUARIOS is in use
Reason: unsuccessful metadata update
object USUARIOS is in use