#809817 : fixed property handling

This commit is contained in:
Timo Westkämper 2011-07-18 12:24:12 +00:00
parent f7c328c649
commit 5861fbfe98
5 changed files with 111 additions and 10 deletions

View File

@ -177,6 +177,14 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xss2m</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>

View File

@ -56,7 +56,7 @@ class ScalaMetaDataSerializer @Inject() (typeMappings: TypeMappings, val namingS
val fieldName = namingStrategy.getPropertyNameForPrimaryKey(primaryKey.getName(), model)
val value = new StringBuilder("createPrimaryKey(")
value.append(primaryKey.getColumns().map({ column =>
namingStrategy.getPropertyName(column, model)
escape(namingStrategy.getPropertyName(column, model))
}).mkString(", "))
value.append(")")
writer.publicFinal(new ClassType(classOf[PrimaryKey[_]], model), fieldName, value.toString)
@ -89,7 +89,7 @@ class ScalaMetaDataSerializer @Inject() (typeMappings: TypeMappings, val namingS
local.append(", ")
foreign.append(", ")
}
local.append(namingStrategy.getPropertyName(foreignKey.getForeignColumns().get(0), model))
local.append(escape(namingStrategy.getPropertyName(foreignKey.getForeignColumns().get(0), model)))
foreign.append("\"" + foreignKey.getParentColumns.get(0) + "\"")
i += 1
}

View File

@ -42,4 +42,12 @@ trait CompileTestUtils {
interpreter.close
}
}
def recursiveFileList(file: File): Array[File] = {
if (file.isDirectory) {
file.listFiles.flatMap(recursiveFileList(_))
} else {
Array(file)
}
}
}

View File

@ -102,14 +102,6 @@ class JDBCIntegrationTest extends CompileTestUtils {
assertCompileSuccess(recursiveFileList(directory))
}
private def recursiveFileList(file: File): Array[File] = {
if (file.isDirectory) {
file.listFiles.flatMap(recursiveFileList(_))
} else {
Array(file)
}
}
@Test
def Populate_Bean {
assertEquals(2, query from (survey) list (survey) size ())

View File

@ -0,0 +1,93 @@
package com.mysema.query.scala.sql
import org.apache.commons.lang.StringUtils
import com.mysema.codegen._;
import com.mysema.codegen.model._;
import com.mysema.query.codegen._;
import com.mysema.query.sql._
import java.io.StringWriter;
import org.junit._
import org.junit.Assert._
import scala.collection.JavaConversions._
import com.mysema.query.scala._
class MetaDataExporterTest extends CompileTestUtils {
var connection: java.sql.Connection = _;
@Before
def setUp() {
Class.forName("org.h2.Driver");
val url = "jdbc:h2:mem:testdb" + System.currentTimeMillis();
connection = java.sql.DriverManager.getConnection(url, "sa", "");
val stmt = connection.createStatement();
try{
stmt.execute("create table reserved (id int, while int)");
stmt.execute("create table underscore (e_id int, c_id int)");
stmt.execute("create table beangen1 (\"SEP_Order\" int)");
stmt.execute("create table definstance (id int, definstance int, definstance1 int)");
stmt.execute("create table pkfk (id int primary key, pk int, fk int)");
stmt.execute("create table \"camelCase\" (id int)");
stmt.execute("create table \"vwServiceName\" (id int)");
stmt.execute("create table date_test (d date)");
stmt.execute("create table date_time_test (dt datetime)");
stmt.execute("create table survey (id int, name varchar(30))");
stmt.execute("create table typetest (type int, constraint pk_typetest primary key(type))");
stmt.execute("""create table employee(
id INT, firstname VARCHAR(50), lastname VARCHAR(50), salary DECIMAL(10, 2),
datefield DATE, timefield TIME,
superior_id int, survey_id int, survey_name varchar(30),
CONSTRAINT PK_employee PRIMARY KEY (id),
CONSTRAINT FK_superior FOREIGN KEY (superior_id) REFERENCES employee(id))""");
// multi key
stmt.execute("create table multikey(id INT, id2 VARCHAR, id3 INT, CONSTRAINT pk_multikey PRIMARY KEY (id, id2, id3) )");
} finally {
stmt.close();
}
}
@Test
def GenerateWithoutBeanTypes() {
val directory = new java.io.File("target/jdbcgen1");
val namingStrategy = new DefaultNamingStrategy();
val exporter = new MetaDataExporter();
exporter.setNamePrefix("Q");
exporter.setPackageName("com.mysema");
exporter.setTargetFolder(directory);
exporter.setSerializerClass(classOf[ScalaMetaDataSerializer]);
exporter.setCreateScalaSources(true);
exporter.setTypeMappings(ScalaTypeMappings.create);
exporter.export(connection.getMetaData);
assertCompileSuccess(recursiveFileList(directory))
}
@Test
def GenerateWithBeanTypes() {
val directory = new java.io.File("target/jdbcgen2");
val namingStrategy = new DefaultNamingStrategy();
val beanSerializer = new ScalaBeanSerializer();
val exporter = new MetaDataExporter();
exporter.setNamePrefix("Q");
exporter.setPackageName("com.mysema");
exporter.setTargetFolder(directory);
exporter.setSerializerClass(classOf[ScalaMetaDataSerializer]);
exporter.setBeanSerializer(beanSerializer)
exporter.setCreateScalaSources(true);
exporter.setTypeMappings(ScalaTypeMappings.create);
exporter.export(connection.getMetaData);
assertCompileSuccess(recursiveFileList(directory))
}
}