MoyaPostgreSQLPlatform.java 1.13 KB
package fi.codecrew.moya.database.eclipselink;

import java.util.Hashtable;

import org.ancoron.postgresql.jpa.eclipselink.ExtendedPostgreSQLPlatform;
import org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Smarter defaults. Use TEXT for string columns and understand JSON fields.
 * Also inherit ExtendedPostgreSQLPlatform which understand the Inet types.
 * 
 * @author jkj
 * 
 */
public class MoyaPostgreSQLPlatform extends ExtendedPostgreSQLPlatform {
	private static final long serialVersionUID = 6351395815598077327L;
	private static final Logger log = LoggerFactory.getLogger(MoyaPostgreSQLPlatform.class);

	@SuppressWarnings({ "rawtypes", "unchecked" })
	@Override
	protected Hashtable buildFieldTypes() {
		log.info("Customizing SQL Platform field types for Moya");
		Hashtable map = super.buildFieldTypes();

		map.put(String.class, new FieldTypeDefinition("TEXT", false));
		map.put(java.sql.Timestamp.class, new FieldTypeDefinition("TIMESTAMPTZ", false));
		map.put(javax.json.JsonObject.class, new FieldTypeDefinition("JSON", false));

		return map;
	}
}