Hibernate - Composite ID e c3p0

Olá,

Estou com um problema para mapear chaves compostas no hibernate e não faço a mínima idéia do que possa estar acontecendo.
Criei três classes assim:

@Entity
@Table(name = "bo_users")
public class Users implements Serializable {

	@Id
	@Column(length = 20, nullable = false)
	private String username;
	@Column(length = 20, nullable = false)
	private String password;
	@OneToMany
	private List<MonitoredUsers> monitoredUsers;
}

@Embeddable
public class MonitoredUsersPk implements Serializable {
	@ManyToOne
	private Users user;
	private String monitoredUser;
}

@Entity
@Table(name = "bo_monitored_users")
public class MonitoredUsers implements Serializable {

	@Id
	private MonitoredUsersPk pk;
}

E meu sessionFactory:

[code]static {
try {

		sessionFactory = new AnnotationConfiguration().
			setProperty("hibernate.session_factory_name", "BOConnection").
			setProperty("hibernate.hbm2ddl.auto", "update").
			setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect").
			setProperty("hibernate.show_sql", "false").
			setProperty("hibernate.order_updates", "true").
			setProperty("hibernate.cglib.use_reflection_optimizer", "true").
			setProperty("hibernate.connection.driver_class", "com.microsoft.sqlserver.jdbc.SQLServerDriver").
			setProperty("hibernate.connection.url", "jdbc:sqlserver://localhost\SQLEXPRESS;integratedSecurity=true").
			setProperty("hibernate.connection.autocommit", "false").
			setProperty("hibernate.c3p0.min_size", "0").
			setProperty("hibernate.c3p0.max_size", "100").
			setProperty("hibernate.c3p0.timeout", "60").
			setProperty("hibernate.c3p0.max_statements", "0").
			addAnnotatedClass(Users.class).
			addAnnotatedClass(MonitoredUsersPk.class).
			addAnnotatedClass(MonitoredUsers.class).
			buildSessionFactory();
	} catch (Throwable ex) {
		throw new ExceptionInInitializerError(ex);
	}
}

[/code]

Quanto dou um openSession no sessionFactory eu tenho a seguinte exception:

java.lang.ExceptionInInitializerError at br.com.cedro.database.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:57) at br.com.cedro.config.InitListener.contextInitialized(InitListener.java:87) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:719) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:566) 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 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.NullPointerException at org.hibernate.cfg.AnnotationConfiguration.processFkSecondPassInOrder(AnnotationConfiguration.java:416) at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:309) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1319) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867) at br.com.cedro.database.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:55) ... 16 more

Não faço idéia do que eu possa estar fazendo de errado, esta exception não diz nada, não dá mensagem alguma…

Outra dúvida: estou utilizando o c3p0 e gostaria de ter alguma noção dos valores a serem configurados. Não tenho muita noção do max de conexões ou se é recomendável utilizá-lo para pool de statements também.

Obrigado.