CreateTestpublic class CreateTest extends Object Create more sample data, letting Hibernate persist it for us. |
Methods Summary |
---|
private static void | addTrackArtist(Track track, Artist artist)Utility method to associate an artist with a track
track.getArtists().add(artist);
| public static Artist | getArtist(java.lang.String name, boolean create, Session session)Look up an artist record given a name.
Query query = session.getNamedQuery(
"com.oreilly.hh.artistByName");
query.setString("name", name);
Artist found = (Artist)query.uniqueResult();
if (found == null && create) {
found = new Artist(name, new HashSet());
session.save(found);
}
return found;
| public static void | main(java.lang.String[] args)
// Create a configuration based on the properties file we've put
// in the standard place.
Configuration config = new Configuration();
// Tell it about the classes we want mapped, taking advantage of
// the way we've named their mapping documents.
config.addClass(Track.class).addClass(Artist.class);
// Get the session factory we can use for persistence
SessionFactory sessionFactory = config.buildSessionFactory();
// Ask for a session using the JDBC information we've configured
Session session = sessionFactory.openSession();
Transaction tx = null;
try {
// Create some data and persist it
tx = session.beginTransaction();
Track track = new Track("Russian Trance",
"vol2/album610/track02.mp3",
Time.valueOf("00:03:30"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("PPK", true, session));
session.save(track);
track = new Track("Video Killed the Radio Star",
"vol2/album611/track12.mp3",
Time.valueOf("00:03:49"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("The Buggles", true, session));
session.save(track);
track = new Track("Gravity's Angel",
"vol2/album175/track03.mp3",
Time.valueOf("00:06:06"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("Laurie Anderson", true, session));
session.save(track);
track = new Track("Adagio for Strings (Ferry Corsten Remix)",
"vol2/album972/track01.mp3",
Time.valueOf("00:06:35"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("William Orbit", true, session));
addTrackArtist(track, getArtist("Ferry Corsten", true, session));
addTrackArtist(track, getArtist("Samuel Barber", true, session));
session.save(track);
track = new Track("Adagio for Strings (ATB Remix)",
"vol2/album972/track02.mp3",
Time.valueOf("00:07:39"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("William Orbit", true, session));
addTrackArtist(track, getArtist("ATB", true, session));
addTrackArtist(track, getArtist("Samuel Barber", true, session));
session.save(track);
track = new Track("The World '99",
"vol2/singles/pvw99.mp3",
Time.valueOf("00:07:05"), new Date(),
(short)0, new HashSet(), new HashSet());
addTrackArtist(track, getArtist("Pulp Victim", true, session));
addTrackArtist(track, getArtist("Ferry Corsten", true, session));
session.save(track);
track = new Track("Test Tone 1",
"vol2/singles/test01.mp3",
Time.valueOf("00:00:10"), new Date(),
(short)0, new HashSet(), new HashSet());
track.getComments().add("Pink noise to test equalization");
session.save(track);
// We're done; make our changes permanent
tx.commit();
} catch (Exception e) {
if (tx != null) {
// Something went wrong; discard all partial changes
tx.rollback();
}
throw e;
} finally {
// No matter what, close the session
session.close();
}
// Clean up after ourselves
sessionFactory.close();
|
|