You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/09/29 16:41:08 UTC

[isis] branch master updated: ISIS-3123: restores LOB annotations as lost earlier today

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/master by this push:
     new ae827d2e6e ISIS-3123: restores LOB annotations as lost earlier today
ae827d2e6e is described below

commit ae827d2e6e76305835ea00def3ef4491bf2d21d6
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 29 18:41:01 2022 +0200

    ISIS-3123: restores LOB annotations as lost earlier today
---
 .../dom/types/isis/markups/jdo/IsisMarkupJdo.java  | 13 +++----
 .../dom/types/isis/markups/jpa/IsisMarkupJpa.java  | 16 +++++----
 .../isisval/asciidocs/jdo/IsisAsciiDocJdo.java     | 13 +++----
 .../isisval/asciidocs/jpa/IsisAsciiDocJpa.java     | 16 +++++----
 .../isisval/markdowns/jdo/IsisMarkdownJdo.java     | 13 +++----
 .../isisval/markdowns/jpa/IsisMarkdownJpa.java     | 16 +++++----
 .../dom/types/isisval/vegas/jdo/IsisVegaJdo.java   | 13 +++----
 .../dom/types/isisval/vegas/jpa/IsisVegaJpa.java   | 16 +++++----
 .../demoshowcases/value/ValueShowCase.java         | 12 ++++---
 .../demoshowcases/value/ValueTypeGenTemplate.java  |  1 +
 .../src/main/resources/jdo/$TemplateJdo~lob.java   | 37 +++++++++----------
 .../src/main/resources/jpa/$TemplateJpa~lob.java   | 42 ++++++++++++----------
 12 files changed, 119 insertions(+), 89 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
index d9accee1e8..2de975a967 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -58,25 +59,25 @@ public class IsisMarkupJdo                                          // <.>
 //tag::class[]
     @Title(prepend = "org.apache.isis.applib.value.Markup JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false")                                               // <.>
+    @Column(allowsNull = "false", jdbcType = "CLOB")                            // <.>
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(allowsNull = "false")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "false", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                                // <.>
+    @Column(allowsNull = "true", jdbcType = "CLOB")                             // <.>
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(allowsNull = "true")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "true", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
index 7cc32c574e..9beb3c68de 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jpa/IsisMarkupJpa.java
@@ -19,11 +19,14 @@
 package demoapp.dom.types.isis.markups.jpa;
 
 import javax.inject.Named;
+import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Lob;
 import javax.persistence.Table;
 
 import org.springframework.context.annotation.Profile;
@@ -34,6 +37,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 
 import lombok.Getter;
@@ -70,25 +74,25 @@ public class IsisMarkupJpa
 
     @Title(prepend = "org.apache.isis.applib.value.Markup JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false)                                                   // <.>
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)                 // <.>
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(nullable = false)
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(nullable = true)                                                    // <.>
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)                  // <.>
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(nullable = true)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.applib.value.Markup readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jdo/IsisAsciiDocJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jdo/IsisAsciiDocJdo.java
index 4bacaad659..c017889d31 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jdo/IsisAsciiDocJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jdo/IsisAsciiDocJdo.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -58,25 +59,25 @@ public class IsisAsciiDocJdo                                          // <.>
 //tag::class[]
     @Title(prepend = "org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false")                                               // <.>
+    @Column(allowsNull = "false", jdbcType = "CLOB")                            // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(allowsNull = "false")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "false", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                                // <.>
+    @Column(allowsNull = "true", jdbcType = "CLOB")                             // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(allowsNull = "true")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "true", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jpa/IsisAsciiDocJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jpa/IsisAsciiDocJpa.java
index df59c517c3..9fbb5c55d4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jpa/IsisAsciiDocJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/asciidocs/jpa/IsisAsciiDocJpa.java
@@ -19,11 +19,14 @@
 package demoapp.dom.types.isisval.asciidocs.jpa;
 
 import javax.inject.Named;
+import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Lob;
 import javax.persistence.Table;
 
 import org.springframework.context.annotation.Profile;
@@ -34,6 +37,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 
 import lombok.Getter;
@@ -70,25 +74,25 @@ public class IsisAsciiDocJpa
 
     @Title(prepend = "org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false)                                                   // <.>
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)                 // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(nullable = false)
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(nullable = true)                                                    // <.>
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)                  // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(nullable = true)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jdo/IsisMarkdownJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jdo/IsisMarkdownJdo.java
index 2cda1cdb6c..c4c4a5eaac 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jdo/IsisMarkdownJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jdo/IsisMarkdownJdo.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -58,25 +59,25 @@ public class IsisMarkdownJdo                                          // <.>
 //tag::class[]
     @Title(prepend = "org.apache.isis.valuetypes.markdown.applib.value.Markdown JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false")                                               // <.>
+    @Column(allowsNull = "false", jdbcType = "CLOB")                            // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(allowsNull = "false")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "false", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                                // <.>
+    @Column(allowsNull = "true", jdbcType = "CLOB")                             // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(allowsNull = "true")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "true", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jpa/IsisMarkdownJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jpa/IsisMarkdownJpa.java
index 8c9d8c6d47..0f9284fa3b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jpa/IsisMarkdownJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/markdowns/jpa/IsisMarkdownJpa.java
@@ -19,11 +19,14 @@
 package demoapp.dom.types.isisval.markdowns.jpa;
 
 import javax.inject.Named;
+import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Lob;
 import javax.persistence.Table;
 
 import org.springframework.context.annotation.Profile;
@@ -34,6 +37,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 
 import lombok.Getter;
@@ -70,25 +74,25 @@ public class IsisMarkdownJpa
 
     @Title(prepend = "org.apache.isis.valuetypes.markdown.applib.value.Markdown JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false)                                                   // <.>
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)                 // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(nullable = false)
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(nullable = true)                                                    // <.>
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)                  // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(nullable = true)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.markdown.applib.value.Markdown readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jdo/IsisVegaJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jdo/IsisVegaJdo.java
index 999156fde9..62837a0373 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jdo/IsisVegaJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jdo/IsisVegaJdo.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -58,25 +59,25 @@ public class IsisVegaJdo                                          // <.>
 //tag::class[]
     @Title(prepend = "org.apache.isis.valuetypes.vega.applib.value.Vega JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false")                                               // <.>
+    @Column(allowsNull = "false", jdbcType = "CLOB")                            // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(allowsNull = "false")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "false", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                                // <.>
+    @Column(allowsNull = "true", jdbcType = "CLOB")                             // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(allowsNull = "true")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "true", jdbcType = "CLOB")
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteOptionalProperty;
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java
index f01f8d861b..3bf5f0ad66 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java
@@ -19,11 +19,14 @@
 package demoapp.dom.types.isisval.vegas.jpa;
 
 import javax.inject.Named;
+import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Lob;
 import javax.persistence.Table;
 
 import org.springframework.context.annotation.Profile;
@@ -34,6 +37,7 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 
 import lombok.Getter;
@@ -70,25 +74,25 @@ public class IsisVegaJpa
 
     @Title(prepend = "org.apache.isis.valuetypes.vega.applib.value.Vega JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false)                                                   // <.>
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)                 // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(nullable = false)
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(nullable = true)                                                    // <.>
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)                  // <.>
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(nullable = true)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
     private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteOptionalProperty;
 
diff --git a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
index 5137d3386d..43e27e1f00 100644
--- a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
+++ b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
@@ -34,24 +34,28 @@ public enum ValueShowCase {
             .showcaseName("IsisMarkup")
             .javaPackage("demoapp.dom.types.isis.markups")
             .showcaseValueType("org.apache.isis.applib.value.Markup")
-            .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.MarkupValueSemantics")),
+            .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.MarkupValueSemantics")
+            .templateVariant(TemplateVariant.LOB)),
     MARKDOWN(Config.builder()
             .showcaseName("IsisMarkdown")
             .javaPackage("demoapp.dom.types.isisval.markdowns")
             .showcaseValueType("org.apache.isis.valuetypes.markdown.applib.value.Markdown")
             .showcaseValueSemantics("org.apache.isis.valuetypes.markdown.metamodel.semantics.MarkdownValueSemantics")
-            .templates(Template.REGULAR_SET_NO_SAMPLES)), // demo provides its own MarkdownSamples
+            .templates(Template.REGULAR_SET_NO_SAMPLES) // demo provides its own MarkdownSamples
+            .templateVariant(TemplateVariant.LOB)),
     ASCIIDOC(Config.builder()
             .showcaseName("IsisAsciiDoc")
             .javaPackage("demoapp.dom.types.isisval.asciidocs")
             .showcaseValueType("org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc")
             .showcaseValueSemantics("org.apache.isis.valuetypes.asciidoc.metamodel.semantics.AsciiDocValueSemantics")
-            .templates(Template.REGULAR_SET_NO_SAMPLES)), // demo provides its own AsciiDocSamples
+            .templates(Template.REGULAR_SET_NO_SAMPLES) // demo provides its own AsciiDocSamples
+            .templateVariant(TemplateVariant.LOB)),
     VEGA(Config.builder()
             .showcaseName("IsisVega")
             .javaPackage("demoapp.dom.types.isisval.vegas")
             .showcaseValueType("org.apache.isis.valuetypes.vega.applib.value.Vega")
-            .showcaseValueSemantics("org.apache.isis.valuetypes.vega.metamodel.semantics.VegaValueSemantics")),
+            .showcaseValueSemantics("org.apache.isis.valuetypes.vega.metamodel.semantics.VegaValueSemantics")
+            .templateVariant(TemplateVariant.LOB)),
     UUID(Config.builder()
             .showcaseName("JavaUtilUuid")
             .javaPackage("demoapp.dom.types.javautil.uuids")
diff --git a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
index c43ff31089..7a031b1d91 100644
--- a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
+++ b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
@@ -105,6 +105,7 @@ public class ValueTypeGenTemplate {
     enum TemplateVariant {
         DEFAULT(""),
         PRIMITIVE("~primitive"),
+        LOB("~lob"),
         ;
         @Getter private final String suffix;
     }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
similarity index 70%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
copy to tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
index d9accee1e8..1ccd0f1636 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/jdo/IsisMarkupJdo.java
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.isis.markups.jdo;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 import javax.jdo.annotations.Column;
@@ -33,52 +33,53 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 
 import lombok.Getter;
 import lombok.Setter;
 
-import demoapp.dom.types.isis.markups.persistence.IsisMarkupEntity;
+import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
+/*${generated-file-notice}*/
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("demo.IsisMarkupEntity")
+@Named("demo./*${showcase-name}*/Entity")
 @DomainObject
-public class IsisMarkupJdo                                          // <.>
-        extends IsisMarkupEntity {
+public class /*${showcase-name}*/Jdo                                          // <.>
+        extends /*${showcase-name}*/Entity {
 
 //end::class[]
-    public IsisMarkupJdo(final org.apache.isis.applib.value.Markup initialValue) {
+    public /*${showcase-name}*/Jdo(final /*${showcase-type}*/ initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
 
 //tag::class[]
-    @Title(prepend = "org.apache.isis.applib.value.Markup JDO entity: ")
+    @Title(prepend = "/*${showcase-type}*/ JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false")                                               // <.>
+    @Column(allowsNull = "false", jdbcType = "CLOB")                            // <.>
     @Getter @Setter
-    private org.apache.isis.applib.value.Markup readOnlyProperty;
+    private /*${showcase-type}*/ readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(allowsNull = "false")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "false", jdbcType = "CLOB")
     @Getter @Setter
-    private org.apache.isis.applib.value.Markup readWriteProperty;
+    private /*${showcase-type}*/ readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                                // <.>
+    @Column(allowsNull = "true", jdbcType = "CLOB")                             // <.>
     @Getter @Setter
-    private org.apache.isis.applib.value.Markup readOnlyOptionalProperty;
+    private /*${showcase-type}*/ readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(allowsNull = "true")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(allowsNull = "true", jdbcType = "CLOB")
     @Getter @Setter
-    private org.apache.isis.applib.value.Markup readWriteOptionalProperty;
+    private /*${showcase-type}*/ readWriteOptionalProperty;
 
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
similarity index 69%
copy from examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java
copy to tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
index f01f8d861b..3d66779cc9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisval/vegas/jpa/IsisVegaJpa.java
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
@@ -16,14 +16,17 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.isisval.vegas.jpa;
+package /*${java-package}*/;
 
 import javax.inject.Named;
+import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Lob;
 import javax.persistence.Table;
 
 import org.springframework.context.annotation.Profile;
@@ -34,31 +37,32 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
-import demoapp.dom.types.isisval.vegas.persistence.IsisVegaEntity;
+import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
+/*${generated-file-notice}*/
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
 @Table(
       schema = "demo",
-      name = "IsisVegaJpa"
+      name = "/*${showcase-name}*/Jpa"
 )
 @EntityListeners(IsisEntityListener.class)
-@Named("demo.IsisVegaEntity")
+@Named("demo./*${showcase-name}*/Entity")
 @DomainObject
 @NoArgsConstructor                                                             // <.>
-public class IsisVegaJpa
-        extends IsisVegaEntity {
+public class /*${showcase-name}*/Jpa
+        extends /*${showcase-name}*/Entity {
 
 //end::class[]
-    public IsisVegaJpa(final org.apache.isis.valuetypes.vega.applib.value.Vega initialValue) {
+    public /*${showcase-name}*/Jpa(final /*${showcase-type}*/ initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
@@ -68,29 +72,29 @@ public class IsisVegaJpa
     @GeneratedValue
     private Long id;
 
-    @Title(prepend = "org.apache.isis.valuetypes.vega.applib.value.Vega JPA entity: ")
+    @Title(prepend = "/*${showcase-type}*/ JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false)                                                   // <.>
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)                 // <.>
     @Getter @Setter
-    private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyProperty;
+    private /*${showcase-type}*/ readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
-    @Column(nullable = false)
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
-    private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteProperty;
+    private /*${showcase-type}*/ readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
-    @Column(nullable = true)                                                    // <.>
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)                  // <.>
     @Getter @Setter
-    private org.apache.isis.valuetypes.vega.applib.value.Vega readOnlyOptionalProperty;
+    private /*${showcase-type}*/ readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
-    @Column(nullable = true)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2", hidden = Where.ALL_TABLES, multiLine = 5)
+    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
     @Getter @Setter
-    private org.apache.isis.valuetypes.vega.applib.value.Vega readWriteOptionalProperty;
+    private /*${showcase-type}*/ readWriteOptionalProperty;
 
 }
 //end::class[]