diff --git a/src/main/java/com/avaje/ebean/annotation/DocEmbedded.java b/src/main/java/com/avaje/ebean/annotation/DocEmbedded.java
new file mode 100644
index 000000000..f0e258287
--- /dev/null
+++ b/src/main/java/com/avaje/ebean/annotation/DocEmbedded.java
@@ -0,0 +1,37 @@
+package com.avaje.ebean.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Specify the property is included in the parent document store index.
+ *
+ *
{@code
+ *
+ *
+ * @DocStore
+ * @Entity @Table(name = "o_order")
+ * public class Order {
+ *
+ * ...
+ * // include some customer details including
+ * // nested billingAddress
+ * @DocEmbedded(doc = "id,status,name,billingAddress(*,country(*)")
+ * @ManyToOne
+ * Customer customer;
+ *
+ *
+ * }
+ */
+@Target({ ElementType.FIELD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface DocEmbedded {
+
+ /**
+ * The properties on the embedded bean to include in the index.
+ */
+ String doc() default "";
+
+}
diff --git a/src/main/java/com/avaje/ebean/annotation/DocStoreEmbedded.java b/src/main/java/com/avaje/ebean/annotation/DocStoreEmbedded.java
index 66adc5e78..09fefda06 100644
--- a/src/main/java/com/avaje/ebean/annotation/DocStoreEmbedded.java
+++ b/src/main/java/com/avaje/ebean/annotation/DocStoreEmbedded.java
@@ -6,27 +6,11 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
- * Specify the property is included in the parent document store index.
- *
- * {@code
- *
- *
- * @DocStore
- * @Entity @Table(name = "o_order")
- * public class Order {
- *
- * ...
- * // include some customer details including
- * // nested billingAddress
- * @DocStoreEmbedded(doc = "id,status,name,billingAddress(*,country(*)")
- * @ManyToOne
- * Customer customer;
- *
- *
- * }
+ * Deprecated in favor of @DocEmbedded (i.e. renamed to @DocEmbedded)
*/
@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
+@Deprecated
public @interface DocStoreEmbedded {
/**
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyAssoc.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyAssoc.java
index 9f823098a..fc4ab947c 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyAssoc.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/meta/DeployBeanPropertyAssoc.java
@@ -1,6 +1,5 @@
package com.avaje.ebeaninternal.server.deploy.meta;
-import com.avaje.ebean.annotation.DocStoreEmbedded;
import com.avaje.ebeaninternal.server.deploy.BeanCascadeInfo;
import com.avaje.ebeaninternal.server.deploy.BeanTable;
@@ -140,8 +139,8 @@ public abstract class DeployBeanPropertyAssoc extends DeployBeanProperty {
/**
* Set DocStoreEmbedded deployment information.
*/
- public void setDocStoreEmbedded(DocStoreEmbedded embedded) {
- docStoreDoc = embedded.doc();
+ public void setDocStoreEmbedded(String embeddedDoc) {
+ this.docStoreDoc = embeddedDoc;
}
public String getDocStoreDoc() {
diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
index 8cee48328..4a5810bea 100644
--- a/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
+++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/parse/AnnotationFields.java
@@ -91,9 +91,13 @@ public class AnnotationFields extends AnnotationParser {
prop.setEmbedded();
}
+ DocEmbedded docEmbedded = get(prop, DocEmbedded.class);
+ if (docEmbedded != null) {
+ prop.setDocStoreEmbedded(docEmbedded.doc());
+ }
DocStoreEmbedded docStoreEmbedded = get(prop, DocStoreEmbedded.class);
if (docStoreEmbedded != null) {
- prop.setDocStoreEmbedded(docStoreEmbedded);
+ prop.setDocStoreEmbedded(docStoreEmbedded.doc());
}
if (prop instanceof DeployBeanPropertyAssocOne>) {
diff --git a/src/test/java/com/avaje/tests/model/basic/Contact.java b/src/test/java/com/avaje/tests/model/basic/Contact.java
index fe4907438..de11eab88 100644
--- a/src/test/java/com/avaje/tests/model/basic/Contact.java
+++ b/src/test/java/com/avaje/tests/model/basic/Contact.java
@@ -1,20 +1,19 @@
package com.avaje.tests.model.basic;
-import java.sql.Timestamp;
-import java.util.List;
+import com.avaje.ebean.annotation.CacheStrategy;
+import com.avaje.ebean.annotation.ChangeLog;
+import com.avaje.ebean.annotation.CreatedTimestamp;
+import com.avaje.ebean.annotation.DocEmbedded;
+import com.avaje.ebean.annotation.DocStore;
+import com.avaje.ebean.annotation.Index;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Version;
-
-import com.avaje.ebean.annotation.CacheStrategy;
-import com.avaje.ebean.annotation.ChangeLog;
-import com.avaje.ebean.annotation.CreatedTimestamp;
-import com.avaje.ebean.annotation.DocStoreEmbedded;
-import com.avaje.ebean.annotation.DocStore;
-import com.avaje.ebean.annotation.Index;
+import java.sql.Timestamp;
+import java.util.List;
@DocStore
@Index(columnNames = {"last_name","first_name"})
@@ -35,7 +34,7 @@ public class Contact {
String mobile;
String email;
- @DocStoreEmbedded(doc="id,name")
+ @DocEmbedded(doc="id,name")
@ManyToOne(optional=false)
Customer customer;
diff --git a/src/test/java/com/avaje/tests/model/basic/Customer.java b/src/test/java/com/avaje/tests/model/basic/Customer.java
index 738f3e89a..5b57b03b6 100644
--- a/src/test/java/com/avaje/tests/model/basic/Customer.java
+++ b/src/test/java/com/avaje/tests/model/basic/Customer.java
@@ -4,7 +4,7 @@ import com.avaje.ebean.annotation.ChangeLog;
import com.avaje.ebean.annotation.ChangeLogInsertMode;
import com.avaje.ebean.annotation.DbComment;
import com.avaje.ebean.annotation.DbEnumValue;
-import com.avaje.ebean.annotation.DocStoreEmbedded;
+import com.avaje.ebean.annotation.DocEmbedded;
import com.avaje.ebean.annotation.DocStore;
import com.avaje.ebean.annotation.JsonIgnore;
import com.avaje.ebean.annotation.Where;
@@ -80,11 +80,11 @@ public class Customer extends BasicDomain {
@NotNull(groups = { ValidationGroupSomething.class })
Date anniversary;
- @DocStoreEmbedded(doc="*,country(*)")
+ @DocEmbedded(doc="*,country(*)")
@ManyToOne(cascade = CascadeType.ALL)
Address billingAddress;
- @DocStoreEmbedded(doc="*,country(*)")
+ @DocEmbedded(doc="*,country(*)")
@ManyToOne(cascade = CascadeType.ALL)
Address shippingAddress;
diff --git a/src/test/java/com/avaje/tests/model/basic/Order.java b/src/test/java/com/avaje/tests/model/basic/Order.java
index b316a96d0..4e63d9780 100644
--- a/src/test/java/com/avaje/tests/model/basic/Order.java
+++ b/src/test/java/com/avaje/tests/model/basic/Order.java
@@ -1,6 +1,7 @@
package com.avaje.tests.model.basic;
import com.avaje.ebean.annotation.ChangeLog;
+import com.avaje.ebean.annotation.DocEmbedded;
import com.avaje.ebean.annotation.DocStore;
import com.avaje.ebean.annotation.DocStoreEmbedded;
import com.avaje.ebean.annotation.Formula;
@@ -86,7 +87,7 @@ public class Order implements Serializable {
@NotNull
@ManyToOne
@JoinColumn(name = "kcustomer_id")
- @DocStoreEmbedded(doc = "id,name")
+ @DocEmbedded(doc = "id,name")
Customer customer;
@Column(name = "name", table = "o_customer")
diff --git a/src/test/java/com/avaje/tests/model/basic/OrderDetail.java b/src/test/java/com/avaje/tests/model/basic/OrderDetail.java
index 962a884a0..72c4fabc9 100644
--- a/src/test/java/com/avaje/tests/model/basic/OrderDetail.java
+++ b/src/test/java/com/avaje/tests/model/basic/OrderDetail.java
@@ -1,15 +1,14 @@
package com.avaje.tests.model.basic;
-import com.avaje.ebean.annotation.DocStoreEmbedded;
-
-import java.io.Serializable;
-import java.sql.Timestamp;
+import com.avaje.ebean.annotation.DocEmbedded;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Version;
+import java.io.Serializable;
+import java.sql.Timestamp;
/**
* Order Detail entity bean.
@@ -33,7 +32,7 @@ public class OrderDetail implements Serializable {
Double unitPrice;
@ManyToOne
- @DocStoreEmbedded(doc = "id,name,sku")
+ @DocEmbedded(doc = "id,name,sku")
Product product;
Timestamp cretime;