For views, as said above, just write a mapping file for them. However, you'll have to ensure that you have some sort of way to disinguish unique rows from the view.
And if you define your PK on the view make sure it doesn't contain a nullable column.
We had to map to some nasty external db via a view and they didn't expose a very good key for us (all of the columns were nullable). During one of the upgrades of Hibernate the functionality changed so that if any part of your key was null then it treated the whole row as null. Just something to be wary of.
As for the stored procs, check out
17.3.2. Using stored procedures for querying
in the reference docs.
You can also obtain a connection directly via JDBC and then execute your stored proc directly.
i.e.
Code:
Connection connection = session.connection();
CallableStatement statement = null;
try {
statement = connection.prepareCall("{ call dbms_wm.GotoWorkspace(?) }");
statement.setString(1, workspace);
statement.execute();
} finally {
closeStatement(statement);
}