Phil 7:00 – 4:00 VTX
- Decided to get a copy (hopefully with student discount) of Atlas. It does taxonomic analysis and outputs a matrix to Excel that I should be able to use to produce PageRank???
- Timesheets! Done
- Seeing if I can add a bit of reflection to addXXX(YYY) that will invoke add/setYYY(XXX). Since the target is a map, it shouldn’t care, but I do need to worry about recursion…
- Added addSourceToTarget() and testSourceInTarget() to GuidBase. So Now addM2M looks like
public void addM2M(GuidBase obj) throws Exception { System.out.println("person.addM2M"); addSourceToTarget(this, obj); addSourceToTarget(obj, this); }and the example of Showroom.addCar() looks like
public void addCar(Car car){ if(cars == null){ cars = new HashSet<>(); } cars.add(car); try { if(!testSourceInTarget(this, car)){ addSourceToTarget(this, car); } } catch (Exception e) { e.printStackTrace(); } }Which now means that the two way mapping is automatic. And in case you’re wondering, testSourceInTarget looks first for a method that returns the source type, and then looks for a method that returns a Set<source type>. If it find the source in either one of those, it returns true.
- Got queries running. Simple queries are easy, but the more complex ones can be pretty ugly. Here’s an example that pulls a Showroom Object based on a nested Person Object (instanced as ‘customer’):
// do a query based on a nested item's value. Kinda yucky... Criteria criteria = session.createCriteria(Showroom.class, "sh"); criteria.createAlias("sh.customers", "c"); List result = criteria.add(Restrictions.like("c.name", "%Aaron%")).list(); for(Object o : result){ System.out.println(o.toString()); }
