Dificuldade mapeamento hibernate

Boa tarde…

Estou com dificuldade em entender como mapear associações de classes no hibernate, já li vários artigos, mas todos explicam diferente as vezes falta alguma coisa, vou postar minhas classes e gostaria que vocês me ajudassem a corrigir o que está errado.
Estou tentando mapear uma relação *-1, que no caso são: o usuário e endereço.

Tabela Usuario:
tb_usuario
uscod varchar pk, ussenha varchar, usnome varchar, usemail varchar, codendereco int pk

Tabela Endereco:
tb_endereco
codigo int pk, rua varchar, bairro varchar, cidade varchar, estado varchar

Classe Usuario:

package exemploSimples;

public class Usuario {
	
	private String usCod;
	private String usSenha;
	private String usNome;
	private String usEmail;
	private Endereco endereco = new Endereco();	

	public String getUsCod() {
		return usCod;
	}

	public void setUsCod(String usCod) {
		this.usCod = usCod;
	}

	public String getUsSenha() {
		return usSenha;
	}

	public void setUsSenha(String usSenha) {
		this.usSenha = usSenha;
	}

	public String getUsNome() {
		return usNome;
	}

	public void setUsNome(String usNome) {
		this.usNome = usNome;
	}

	public String getUsEmail() {
		return usEmail;
	}

	public void setUsEmail(String usEmail) {
		this.usEmail = usEmail;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
}

Classe Endereco:

package exemploSimples;

public class Endereco {
	
	private int codigo;
	private String rua;
	private String bairro;
	private String cidade;
	private String estado;
	
	public int getCodigo() {
		return codigo;
	}
	
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	
	public String getRua() {
		return rua;
	}
	
	public void setRua(String rua) {
		this.rua = rua;
	}
	
	public String getBairro() {
		return bairro;
	}
	
	public void setBairro(String bairro) {
		this.bairro = bairro;
	}
	
	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;
	}
	
}

Usuario.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

<hibernate-mapping>
   <class name="exemploSimples.Usuario" table="tb_usuario">
        <id name="UsCod" column="USCOD" type="string" unsaved-value="0">
	        <generator class="sequence">
            	<param name="sequence">sequence_usuario</param>
        	</generator>
    	</id>
        
        <property name="UsSenha" column="USSENHA" type="string"/>
        <property name="UsNome" column="USNOME" type="string"/>
        <property name="UsEmail" column="USEMAIL" type="string"/>
        
        <many-to-one name="endereco" class="exemploSimples.Endereco" column="codEndereco" /> 
    </class>
</hibernate-mapping>

Endereco.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  

<hibernate-mapping>
   <class name="exemploSimples.Endereco" table="tb_endereco">
        <id name="codigo" unsaved-value="0">
	        <generator class="sequence">
            	<param name="sequence">sequence_endereco</param>
        	</generator>
    	</id>
        
        <property name="rua"/>
        <property name="bairro"/>
        <property name="cidade"/>
        <property name="estado"/>
    </class>
</hibernate-mapping>

Main:

package exemploSimples;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Main {
	
	public static void main(String[] args) {		
		try{ 
			SessionFactory factory = new Configuration().configure("exemploSimples/hibernate.cfg.xml").buildSessionFactory();
			Session sessao = factory.openSession();			
			Transaction transaction = sessao.beginTransaction();	
			
			Usuario u = new Usuario();
			u.setUsNome("nome");
			u.setUsEmail("email");
			u.setUsSenha("senha");
			
			Endereco e = new Endereco();
			e.setRua("rua");
			e.setBairro("bairro");
			e.setCidade("cidade");
			e.setEstado("estado");
						
			u.setEndereco(e);
			
			sessao.save(e);	
			sessao.save(u);	
			
			transaction.commit();			
			sessao.close();
			System.out.println("Inserido com sucesso!");
		}catch(Exception e){    
			System.out.println(e.getMessage()); 
		}
	}

}

Erro:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Hibernate: select sequence_endereco.nextval from dual
Hibernate: select sequence_usuario.nextval from dual
Hibernate: insert into tb_endereco (rua, bairro, cidade, estado, codigo) values (?, ?, ?, ?, ?)
Hibernate: insert into tb_usuario (USSENHA, USNOME, USEMAIL, codigo, USCOD) values (?, ?, ?, ?, ?)
Could not execute JDBC batch update

Desde já, agradeço!

Não entendi sua dúvida. Aparentemente seu exemplo está mapeado corretamente e no log do console q você mostrou o Hibernate agiu como esperado, inserindo os dois registros.

Qual o problema?

Eu havia invertido um campo, agora deu certo. Obrigada!