Commit 0daf2748 by Petri Jarvisalo

Merge branch 'master' of codecrew.fi:bortal

2 parents e17d20a0 ee273262
package fi.insomnia.bortal.facade;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import fi.insomnia.bortal.model.CardBarcode;
@Stateless
@LocalBean
public class CardBarcodeFacade extends IntegerPkGenericFacade<CardBarcode> {
public CardBarcodeFacade() {
super(CardBarcode.class);
}
}
Manifest-Version: 1.0 Manifest-Version: 1.0
Class-Path: bcprov-jdk16-146.jar Class-Path: bcprov-jdk16-146.jar
bcmail-jdk16-146.jar bcmail-jdk16-146.jar
LanBortalUtilities.jar LanBortalUtilities.jar
org.ancoron.postgresql.jpa-9.1.901.jdbc4.1-rc6.jar
org.postgresql-9.1.901.jdbc4.1-rc6.jar
org.postgresql.net-9.1.901.jdbc4.1-rc6.jar
...@@ -11,9 +11,13 @@ ...@@ -11,9 +11,13 @@
value="database" /> value="database" />
<property name="eclipselink.logging.logger" value="ServerLogger" /> <property name="eclipselink.logging.logger" value="ServerLogger" />
<property name="eclipselink.jdbc.uppercase-columns" value="false" /> <property name="eclipselink.jdbc.uppercase-columns" value="false" />
<!-- <property name="eclipselink.target-database" <property name="eclipselink.target-database"
value="fi.insomnia.bortal.database.LanBortalPostgresqlPlatform" /> --> value="fi.insomnia.bortal.database.BortalPostgreSQLPlatform" />
<property name="eclipselink.session-event-listener"
value="org.ancoron.postgresql.jpa.eclipselink.ConverterInitializer" />
<property name="eclipselink.descriptor.customizer"
value="fi.insomnia.bortal.database.BortalDescriptorCustomizer" />
</properties> </properties>
</persistence-unit> </persistence-unit>
</persistence> </persistence>
package fi.insomnia.bortal.database;
import java.util.List;
import org.eclipse.persistence.config.DescriptorCustomizer;
import org.eclipse.persistence.descriptors.ChangedFieldsLockingPolicy;
import org.eclipse.persistence.descriptors.ClassDescriptor;
import org.eclipse.persistence.descriptors.ReturningPolicy;
import org.eclipse.persistence.internal.helper.DatabaseField;
public class BortalDescriptorCustomizer implements DescriptorCustomizer {
@Override
public void customize(ClassDescriptor descriptor) throws Exception {
// Optimistic locking policy
ChangedFieldsLockingPolicy changedFieldsLockingPolicy = new ChangedFieldsLockingPolicy();
descriptor.setOptimisticLockingPolicy(changedFieldsLockingPolicy);
// Returningpolicy
ReturningPolicy returningPolicy = new ReturningPolicy();
List<DatabaseField> pkFields = descriptor.getPrimaryKeyFields();
for (final DatabaseField field : pkFields) {
returningPolicy.addFieldForInsertReturnOnly(field);
field.setUpdatable(false);
field.setInsertable(false);
}
for (final DatabaseField field : descriptor.getFields()) {
if (pkFields.contains(field))
continue;
returningPolicy.addFieldForInsert(field);
returningPolicy.addFieldForUpdate(field);
}
descriptor.setReturningPolicy(returningPolicy);
}
}
package fi.insomnia.bortal.database;
import java.util.Hashtable;
import org.eclipse.persistence.internal.databaseaccess.FieldTypeDefinition;
import org.eclipse.persistence.platform.database.PostgreSQLPlatform;
public class BortalPostgreSQLPlatform extends PostgreSQLPlatform {
private static final long serialVersionUID = 6351395815598077327L;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
protected Hashtable buildFieldTypes() {
Hashtable map = super.buildFieldTypes();
map.put(String.class, new FieldTypeDefinition("TEXT", false));
map.put(java.sql.Timestamp.class, new FieldTypeDefinition(
"TIMESTAMPTZ", false));
return map;
}
}
package fi.insomnia.bortal.model;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.eclipse.persistence.annotations.OptimisticLocking;
import org.eclipse.persistence.annotations.OptimisticLockingType;
@Entity
@Table(name = "card_barcode")
@OptimisticLocking(type = OptimisticLockingType.CHANGED_COLUMNS)
public class CardBarcode extends GenericEntity {
private static final long serialVersionUID = 4771609802672223277L;
@ManyToOne
@JoinColumn(name = "printed_cards_id")
private PrintedCard printedCard;
public PrintedCard getPrintedCard() {
return printedCard;
}
public void setPrintedCard(PrintedCard printedCard) {
this.printedCard = printedCard;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!