diff --git a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
index 2d5ec2f..d2dac96 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/PublisherAssertion.java
@@ -37,7 +37,7 @@
  * @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
  */
 @Entity
-@Table(name = "j3_publisher_assertion")
+@Table(name = "j3_pubassrt")
 public class PublisherAssertion implements java.io.Serializable {
 
         private static final long serialVersionUID = -5285434317957104272L;
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
index 93d0f73..1e3de5c 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
@@ -73,7 +73,7 @@
          * Gets the value of the serialNumber property.
          *
          */
-        @Column(name = "serialnumb")
+        @Column(name = "serno")
         @OrderBy(value = "SerialNumber DESC")
         @Id
         public Long getSerialNumber() {
@@ -206,7 +206,10 @@
         }
 
         // @OneToMany( fetch = FetchType.LAZY,targetEntity = Edge.class, mappedBy = "Edge")
-        @OneToMany(targetEntity = Edge.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+        @OneToMany(targetEntity = Edge.class, 
+                fetch = FetchType.LAZY, cascade = CascadeType.ALL
+                //mappedBy = "j3_edge"
+                )
         public List<Edge> getEdge() {
                 return this.edge;
         }
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfigurationNode.java b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfigurationNode.java
index e146375..7b03ffc 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfigurationNode.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfigurationNode.java
@@ -37,7 +37,7 @@
         private static final long serialVersionUID = 1L;
         private Long id;
         private ReplicationConfiguration parent;
-        String rx;
+        private String rx;
 
         @Id
         @GeneratedValue(strategy = GenerationType.AUTO)
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Signature.java b/juddi-core/src/main/java/org/apache/juddi/model/Signature.java
index 856014a..886092d 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/Signature.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/Signature.java
@@ -33,7 +33,7 @@
  *
  */
 @Entity
-@Table(name = "j3_signature")
+@Table(name = "j3_sig")
 public class Signature implements java.io.Serializable {
     private static final long serialVersionUID = -3233157941119408718L;
     
diff --git a/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java b/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java
index b606ad4..ac85264 100644
--- a/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java
+++ b/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java
@@ -91,10 +91,10 @@
 			String urlValue = discURL.getValue();
 			
 			if (discURL.getUseType() == null || discURL.getUseType().length() == 0 ) {
-				qry.appendGroupedAnd(new DynamicQuery.Parameter(urlTerm, urlValue, DynamicQuery.PREDICATE_EQUALS));
+				qry.appendGroupedAnd(new DynamicQuery.Parameter(urlTerm, urlValue, DynamicQuery.PREDICATE_LIKE));
 			}
 			else {
-				qry.appendGroupedAnd(new DynamicQuery.Parameter(urlTerm, urlValue, DynamicQuery.PREDICATE_EQUALS), 
+				qry.appendGroupedAnd(new DynamicQuery.Parameter(urlTerm, urlValue, DynamicQuery.PREDICATE_LIKE), 
 									 new DynamicQuery.Parameter(entityAliasChild + ".useType", discURL.getUseType(), DynamicQuery.PREDICATE_EQUALS));
 			}
 			
diff --git a/juddi-ddl-generator/src/main/java/org/apache/juddi/ddl/generator/App.java b/juddi-ddl-generator/src/main/java/org/apache/juddi/ddl/generator/App.java
index d226c30..4f5a7f6 100644
--- a/juddi-ddl-generator/src/main/java/org/apache/juddi/ddl/generator/App.java
+++ b/juddi-ddl-generator/src/main/java/org/apache/juddi/ddl/generator/App.java
@@ -255,7 +255,6 @@
          */
         private static enum Dialect {
 
-                ORACLE("org.hibernate.dialect.Oracle10gDialect"),
                 MYSQL("org.hibernate.dialect.MySQLDialect"),
                 HSQL("org.hibernate.dialect.HSQLDialect"),
                 POSTGRES("org.hibernate.dialect.PostgreSQLDialect"),
