More work on JPA server

This commit is contained in:
jamesagnew 2014-05-13 09:01:52 -04:00
parent 0869b1fc14
commit e3bb0fa3be
7 changed files with 92 additions and 5 deletions

View File

@ -1,9 +1,8 @@
package ca.uhn.fhir.jpa.entity;
package ca.uhn.fhir.jpa.dao;
import java.util.HashMap;
import java.util.List;
import ca.uhn.fhir.jpa.dao.IFhirResourceDao;
import ca.uhn.fhir.model.api.IQueryParameterType;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.primitive.IdDt;

View File

@ -0,0 +1,7 @@
package ca.uhn.fhir.jpa.dao;
public @interface IndexedParam {
String path();
}

View File

@ -0,0 +1,33 @@
package ca.uhn.fhir.jpa.entity;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class BaseResourceIndexedSearchParam implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "RES_ID")
private Long myId;
@ManyToOne(optional=false)
@Column(name="RESOURCE_PID", nullable=false)
private BaseResourceTable<?> myResource;
}

View File

@ -4,7 +4,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import ca.uhn.fhir.jpa.entity.BaseResourceProvider;
import ca.uhn.fhir.jpa.dao.BaseResourceProvider;
import ca.uhn.fhir.model.api.IQueryParameterType;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.api.annotation.Description;

View File

@ -1,6 +1,6 @@
package ca.uhn.fhir.jpa.test;
import ca.uhn.fhir.jpa.entity.BaseResourceProvider;
import ca.uhn.fhir.jpa.dao.BaseResourceProvider;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.dstu.resource.Questionnaire;

View File

@ -0,0 +1,45 @@
#parse ( "/vm/templates.vm" )
package ${packageBase};
@ResourceDef(name="${className}", profile="${profile}", id="${id}")
public class ${className}ResourceTable extends BaseResourceTable<${className}> {
#foreach ( $param in $searchParams )
#if( ${param.typeCapitalized} == 'String' )
@IndexedParam(path="${param.path}")
@Column(length=100)
private String ${param.name};
#elseif( ${param.typeCapitalized} == 'Date' )
@IndexedParam(path="${param.path}")
@Column()
private String ${param.name};
/**
* <b>Fluent Client</b> search parameter constant for <b>${param.name}</b>
* <p>
* Description: <b>${param.description}</b><br/>
* Type: <b>${param.type}</b><br/>
* Path: <b>${param.path}</b><br/>
* </p>
*/
public static final ${param.typeCapitalized}Param ${param.fluentConstantName} = new ${param.typeCapitalized}Param(${param.constantName});
#if( ${param.typeCapitalized} == 'Reference' )
#foreach ( $include in $param.paths )
/**
* Constant for fluent queries to be used to add include statements. Specifies
* the path value of "<b>${include.path}</b>".
*/
public static final Include INCLUDE_${include.includeName} = new Include("${include.path}");
#end
#end
#end
@Override
public Class<${className}> getResourceType() {
return ${className}.class;
}
}

View File

@ -46,6 +46,8 @@
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
@ -53,6 +55,7 @@
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>