7:00 – 2:30 VTX
- Got my Copy of AtlasTi. Going to try using it to organize my papers/thoughts for the proposal. Imported a bunch of papers. Next, I’m going to re-do my annotations of the Gezi paper into Atlas and then see if I can start to cross-correlate, code and so forth. After that’ we’ll try some fancy things like getting eigenvectors out of taxonomies.
- Realized that I should be able to automate Hibernate criteria so that a query like
- Criteria criteria = drilldown(session, Showroom.customers, LIKE, ‘Aaron’) should be possible.
- But before that, I’m going to try out spring JPA and Intellij spring / springboot integration.
- Replicated the hibernate sandbox (SpringHibernate1) using spring. not really sure what it gave me yet.
- Adding in JPA support in the IDE
- Still some missing jars. Since I can’s think of any other way to do it, grabbing the jars as needed from Maven.
- Ok, I think I got everything in, but it blows up:
[2016-01-04 11:18:13.409] - 3116 INFO [main] --- com.philfeldman.mains.SpringJPATest: Starting SpringJPATest on PFELDMAN-NCS with PID 3116 (C:\Development\Sandboxes\SpringHibernate1\out\production\SpringHibernate1 started by philip.feldman in C:\Development\Sandboxes\SpringHibernate1) [2016-01-04 11:18:13.428] - 3116 INFO [main] --- com.philfeldman.mains.SpringJPATest: No active profile set, falling back to default profiles: default [2016-01-04 11:18:13.476] - 3116 INFO [main] --- org.springframework.context.annotation.AnnotationConfigApplicationContext: Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@6321e813: startup date [Mon Jan 04 11:18:13 EST 2016]; root of context hierarchy [2016-01-04 11:18:14.504] - 3116 INFO [main] --- org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor: JSR-330 'javax.inject.Inject' annotation found and supported for autowiring [2016-01-04 11:18:14.577] - 3116 WARNING [main] --- org.springframework.context.annotation.AnnotationConfigApplicationContext: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} [2016-01-04 11:18:14.588] - 3116 SEVERE [main] --- org.springframework.boot.SpringApplication: Application startup failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.sql.DataSource] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} - Taking a break on the Spring JPA to add in the ability to drill down to a class element with hibernate. This really isn’t provided somewhere?
/** * For some reason, hibernate can't create a nested alias. This loops over the path to create one. * @param rootClass - The root class that we are going to query * @param leafNodeName - the path to the node we wan't to restrict on (e.g. "Foo.bar.baz"). * @return - A Criteria if successful, null if not. */ public Criteria drillDownAlias(Class rootClass, String leafNodeName){ String className = rootClass.getSimpleName(); System.out.println("Class name = "+className); String[] nodeNames = leafNodeName.split("\\."); if(nodeNames.length < 1){ return null; } Criteria criteria = session.createCriteria(rootClass, nodeNames[0]); // TODO: add some testing that verifies the path is valid for(int i = 1; i < nodeNames.length; ++i){ String prevNode = nodeNames[i-1]; String curNode = nodeNames[i]; criteria.createAlias(prevNode+"."+curNode, curNode); } return criteria; }
