Generate sample named queries for Dynamic Entities.
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java
index 1eff2cf..61bf5ec 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/ORMGenTable.java
@@ -261,6 +261,14 @@
setCustomized(CLASS_NAME, className);
}
}
+
+ /**
+ * Returns the alias for a Named Query.
+ */
+ public String getAliasForQuery() {
+ String alias = getClassName().substring(0, 1);
+ return alias.toLowerCase();
+ }
/**
* Returns a name suitable to be used as a variable or class name. This is
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java
index edc1c4e..f3b222c 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/src/org/eclipse/jpt/jpa/gen/internal/PackageGenerator.java
@@ -420,6 +420,13 @@
StringBuilder xmlFileContents = new StringBuilder();
xmlFileContents.append(generateXmlHeaderFooter(ve, "header.vm")); //$NON-NLS-1$
+
+ // Build sample named queries
+ for (Iterator<String> names = tableNames.iterator(); names.hasNext();) {
+ ORMGenTable table = this.customizer.getTable(names.next());
+ xmlFileContents.append(generateXmlTypeMetadata(table, ve, "namedQuery.vm"));
+ }
+
List<ORMGenTable> compositeKeyTables = new ArrayList<ORMGenTable>();
for (Iterator<String> names = tableNames.iterator(); names.hasNext();) {
@@ -432,7 +439,7 @@
return;
}
- xmlFileContents.append(generateXmlTypeMapping(table, ve, "main.xml.vm", sm.newChild(10))); //$NON-NLS-1$
+ xmlFileContents.append(generateXmlTypeMetadata(table, ve, "main.xml.vm")); //$NON-NLS-1$
if (table.isCompositeKey()) {
compositeKeyTables.add(table);
@@ -443,7 +450,7 @@
for (ORMGenTable table : compositeKeyTables) {
SubMonitor sm = SubMonitor.convert(monitor, NLS.bind(JptGenMessages.EntityGenerator_taskName, table.getName()), 1);
if (table.isCompositeKey()) {
- xmlFileContents.append(generateXmlTypeMapping(table, ve, "embeddable.vm", sm.newChild(1))); //$NON-NLS-1$
+ xmlFileContents.append(generateXmlTypeMetadata(table, ve, "embeddable.vm")); //$NON-NLS-1$
}
}
@@ -474,8 +481,8 @@
}
- private String generateXmlTypeMapping(ORMGenTable table, VelocityEngine ve
- , String templateName, IProgressMonitor monitor) throws Exception {
+ private String generateXmlTypeMetadata(ORMGenTable table, VelocityEngine ve
+ , String templateName) throws Exception {
VelocityContext context = new VelocityContext();
context.put("table", table); //$NON-NLS-1$
context.put("customizer", getCustomizer()); //$NON-NLS-1$
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/xml_entities/namedQuery.vm b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/xml_entities/namedQuery.vm
new file mode 100644
index 0000000..5f85557
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/templates/xml_entities/namedQuery.vm
@@ -0,0 +1,3 @@
+ <named-query name="${table.className}.findAll">
+ <query>select ${table.aliasForQuery} from ${table.className} ${table.aliasForQuery}</query>
+ </named-query>