I am trying to implement a @Strategy using the FieldStrategy interface. The
problem I am having is that when I go to persist my object it is always
going with the default handlers. I am not receiving any exceptions until it
goes to do the insert. I am wondering if I have done this correctly or not
so any feedback is appreciated.
package test.openjpa.entity;
import java.io.Serializable;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import org.apache.openjpa.persistence.jdbc.Strategy;
@Entity
public class Company implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6741913908217906576L;
@Id
@Strategy("test.openjpa.entity.OpenUuid")
protected UUID id;
@Column(name="name")
private String companyName;
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Id = ").append(id).append(" - ");
sb.append("Name = ").append(companyName);
return sb.toString();
}
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
@PrePersist
public void assignUUID(){
this.setId(UUID.randomUUID());
}
}
package test.openjpa.entity;
import java.sql.SQLException;
import java.util.UUID;
import org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration;
import org.apache.openjpa.jdbc.kernel.JDBCStore;
import org.apache.openjpa.jdbc.meta.FieldMapping;
import org.apache.openjpa.jdbc.meta.FieldStrategy;
import org.apache.openjpa.jdbc.sql.Joins;
import org.apache.openjpa.jdbc.sql.Result;
import org.apache.openjpa.jdbc.sql.RowManager;
import org.apache.openjpa.jdbc.sql.SQLBuffer;
import org.apache.openjpa.jdbc.sql.Select;
import org.apache.openjpa.jdbc.sql.SelectExecutor;
import org.apache.openjpa.kernel.OpenJPAStateManager;
import org.apache.openjpa.persistence.jdbc.Strategy;
public class OpenUuid implements FieldStrategy {
/**
*
*/
private static final long serialVersionUID = -7313412704454986736L;
public class PostgresUuid extends org.postgresql.util.PGobject {
public static final long serialVersionUID = 89469482L;
public PostgresUuid(UUID u) throws java.sql.SQLException {
super();
this.setType("uuid");
this.setValue(u.toString());
}
public PostgresUuid() throws java.sql.SQLException {
super();
this.setType("uuid");
this.setValue(null);
}
}
@Override
public String getAlias() {
// TODO Auto-generated method stub
return null;
}
@Override
public void map(boolean adapt) {
// TODO Auto-generated method stub
}
@Override
public void initialize() {
// TODO Auto-generated method stub
}
@Override
public void insert(OpenJPAStateManager sm, JDBCStore store, RowManager rm)
throws SQLException {
System.out.println("I am inside the insert");
}
@Override
public void update(OpenJPAStateManager sm, JDBCStore store, RowManager rm)
throws SQLException {
// TODO Auto-generated method stub
}
@Override
public void delete(OpenJPAStateManager sm, JDBCStore store, RowManager rm)
throws SQLException {
// TODO Auto-generated method stub
}
@Override
public Boolean isCustomInsert(OpenJPAStateManager sm, JDBCStore store) {
System.out.println("I am inside the isCustominsert");
return true;
}
@Override
public Boolean isCustomUpdate(OpenJPAStateManager sm, JDBCStore store) {
// TODO Auto-generated method stub
return null;
}
@Override
public Boolean isCustomDelete(OpenJPAStateManager sm, JDBCStore store) {
// TODO Auto-generated method stub
return null;
}
@Override
public void customInsert(OpenJPAStateManager sm, JDBCStore store) throws
SQLException {
System.out.println("I am inside the custominsert");
}
@Override
public void customUpdate(OpenJPAStateManager sm, JDBCStore store) throws
SQLException {
// TODO Auto-generated method stub
}
@Override
public void customDelete(OpenJPAStateManager sm, JDBCStore store) throws
SQLException {
// TODO Auto-generated method stub
}
@Override
public void setFieldMapping(FieldMapping owner) {
System.out.println("I am inside the FieldMapping");
}
@Override
public int supportsSelect(Select sel, int type, OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch) {
// TODO Auto-generated method stub
return 0;
}
@Override
public void selectEagerParallel(SelectExecutor sel, OpenJPAStateManager sm,
JDBCStore store,
JDBCFetchConfiguration fetch, int eagerMode) {
// TODO Auto-generated method stub
}
@Override
public void selectEagerJoin(Select sel, OpenJPAStateManager sm, JDBCStore
store, JDBCFetchConfiguration fetch,
int eagerMode) {
// TODO Auto-generated method stub
}
@Override
public boolean isEagerSelectToMany() {
// TODO Auto-generated method stub
return false;
}
@Override
public int select(Select sel, OpenJPAStateManager sm, JDBCStore store,
JDBCFetchConfiguration fetch, int eagerMode) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object loadEagerParallel(OpenJPAStateManager sm, JDBCStore store,
JDBCFetchConfiguration fetch, Object res)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public void loadEagerJoin(OpenJPAStateManager sm, JDBCStore store,
JDBCFetchConfiguration fetch, Result res)
throws SQLException {
// TODO Auto-generated method stub
}
@Override
public void load(OpenJPAStateManager sm, JDBCStore store,
JDBCFetchConfiguration fetch, Result res)
throws SQLException {
// TODO Auto-generated method stub
}
@Override
public void load(OpenJPAStateManager sm, JDBCStore store,
JDBCFetchConfiguration fetch) throws SQLException {
// TODO Auto-generated method stub
}
@Override
public Object toDataStoreValue(Object val, JDBCStore store) {
System.out.println("I am inside the toDataStoreValue");
return null;
}
@Override
public Object toKeyDataStoreValue(Object val, JDBCStore store) {
System.out.println("I am inside the toKeyDataStoreValue");
return null;
}
@Override
public void appendIsEmpty(SQLBuffer sql, Select sel, Joins joins) {
System.out.println("I am inside the appendIsEmpty");
}
@Override
public void appendIsNotEmpty(SQLBuffer sql, Select sel, Joins joins) {
System.out.println("I am inside the appendIsNotEmpty");
}
@Override
public void appendIsNull(SQLBuffer sql, Select sel, Joins joins) {
System.out.println("I am inside the appendIsNull");
}
@Override
public void appendIsNotNull(SQLBuffer sql, Select sel, Joins joins) {
System.out.println("I am inside the appendIsNotNull");
}
@Override
public void appendSize(SQLBuffer sql, Select sel, Joins joins) {
// TODO Auto-generated method stub
}
@Override
public void appendIndex(SQLBuffer sql, Select sel, Joins joins) {
// TODO Auto-generated method stub
}
@Override
public void appendType(SQLBuffer sql, Select sel, Joins joins) {
// TODO Auto-generated method stub
}
@Override
public Joins join(Joins joins, boolean forceOuter) {
// TODO Auto-generated method stub
return null;
}
@Override
public Joins joinKey(Joins joins, boolean forceOuter) {
// TODO Auto-generated method stub
return null;
}
@Override
public Joins joinRelation(Joins joins, boolean forceOuter, boolean
traverse) {
// TODO Auto-generated method stub
return null;
}
@Override
public Joins joinKeyRelation(Joins joins, boolean forceOuter, boolean
traverse) {
// TODO Auto-generated method stub
return null;
}
@Override
public Object loadProjection(JDBCStore store, JDBCFetchConfiguration fetch,
Result res, Joins joins)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object loadKeyProjection(JDBCStore store, JDBCFetchConfiguration
fetch, Result res, Joins joins)
throws SQLException {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isVersionable() {
System.out.println("I am inside the isVersionable");
return false;
}
@Override
public void where(OpenJPAStateManager sm, JDBCStore store, RowManager rm,
Object prevValue) throws SQLException {
// TODO Auto-generated method stub
}
}
--
View this message in context: http://openjpa.208410.n2.nabble.com/FieldStrategy-found-tp7584021.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.
|