Is it possible to use container-managed persistence and take advantage of database triggers and sequences to populate the primary key? If so are there any good examples?
The technique you'd want to use would be to retrieve your new key value in your ejbCreate method(s) and assign it to the appropriate field in your bean. That way the CMP mechanism in the container can pick it up and will have an identity for your bean. Note that your ejbCreate method needs to return an instance of your primary key class (in EJB 1.1 - if you're still at 1.0, consider a different container)
You should be able to get your value with a little bit of BMP looking code: get the DataSource from JNDI (ctx.lookup("java:comp/env/jdbc/MyConnection") type things), get a Connection from the DataSource, then execute the SQL ("SELECT myseq.nextval from dual" if i remember Oracle correctly). Remember to close the connection to ensure taht it is re-pooled properly.
By the same token, you'll not be able to get your CMP container to emit SQL that hits your sequence within the insert statement: it requires assumptions that container developers just can't make (like the existence and syntax of your RDBMS' sequence feature, as well as all of the above).