Liferay Model Hints

这篇文章主要介绍如何通过model hint 来修改liferay builder service生成数据库表中默认字段的长度。

1.什么是Model Hints?

它是对liferay builder service生成的model类的基本提示.

 

2. 它在什么地方被定义的?

portlet-model-hints.xml

 

3. 文件位置?

/docroot/WEB-INF/src/META-INF

 

 

4. 为什么被称为Model Hints?

Liferay把它命名为Model Hints,因为Model Hints表明了实体呈现给用户的方式,同时也指定了实体的字段在数据库中占的内存大小。

 

5. 我能在portal源码中找到关于model hints的更多详细信息吗?

能,在Liferay 7.0 ga4中, model hints的文件位于liferay-ce-portal-7.0-ga4/tomcat-8.0.32/webapps/ROOT/WEB-INF/lib/portal-impl/META-INF/portal-model-hints.xml

 

6. Model Hints的最佳用处是什么?

用来定义存储在数据库中实体的字段的size.

 

现在让我们来看一下实例(改变service builder在数据库生成的表的字段长度)

1. service.xml

<?xml version="1.0"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 7.0.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_7_0_0.dtd"><service-builder package-path="my.test.sb"><namespace>FOO</namespace><!--<entity data-source="sampleDataSource" local-service="true" name="Foo" remote-service="false" session-factory="sampleSessionFactory" table="foo" tx-manager="sampleTransactionManager uuid="true"">--><entity local-service="true" name="Foo" remote-service="true" uuid="true"><!-- PK fields --><column name="fooId" primary="true" type="long" /><!-- Group instance --><column name="groupId" type="long" /><!-- Audit fields --><column name="companyId" type="long" /><column name="userId" type="long" /><column name="userName" type="String" /><column name="createDate" type="Date" /><column name="modifiedDate" type="Date" /><!-- Other fields --><column name="field1" type="String" /><column name="field2" type="boolean" /><column name="field3" type="int" /><column name="field4" type="Date" /><column name="field5" type="String" /><!-- Order --><order by="asc"><order-column name="field1" /></order><!-- Finder methods --><finder name="Field2" return-type="Collection"><finder-column name="field2" /></finder><!-- References --><reference entity="AssetEntry" package-path="com.liferay.portlet.asset" /><reference entity="AssetTag" package-path="com.liferay.portlet.asset" /></entity>
</service-builder>

2.生成的portlet-model-hints.xml

<?xml version="1.0"?><model-hints><model name="my.test.sb.model.Foo"><field name="uuid" type="String" /><field name="fooId" type="long" /><field name="groupId" type="long" /><field name="companyId" type="long" /><field name="userId" type="long" /><field name="userName" type="String" /><field name="createDate" type="Date" /><field name="modifiedDate" type="Date" /><field name="field1" type="String" /><field name="field2" type="boolean" /><field name="field3" type="int" /><field name="field4" type="Date" /><field name="field5" type="String" /></model>
</model-hints>

3. 在改变model hints之前数据库中字段的长度

只是userName的长度是75

4. 现在改变portlet-model-hints.xml文件,内容如下。把useName的长度改为100

<?xml version="1.0"?><model-hints><model name="my.test.sb.model.Foo"><field name="uuid" type="String" /><field name="fooId" type="long" /><field name="groupId" type="long" /><field name="companyId" type="long" /><field name="userId" type="long" /><field name="userName" type="String"><hint name="max-length">100</hint></field><field name="createDate" type="Date" /><field name="modifiedDate" type="Date" /><field name="field1" type="String" /><field name="field2" type="boolean" /><field name="field3" type="int" /><field name="field4" type="Date" /><field name="field5" type="String" /></model>
</model-hints>

5. 运行cleanServiceBuilderTask(参照之前写的清理service builder产生的table文)之后数据库如下图所示,userName的长度变成了100.

然后大功告成,更多详细信息http://proliferay.com/liferay-model-hints/

https://dev.liferay.com/zh/develop/tutorials/-/knowledge_base/6-2/customizing-model-entities-with-model-hints#related-topics

 

转载于:https://www.cnblogs.com/hibou/p/7084655.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器书签备份管理

1、火狐浏览器备份导出HTML文件&#xff1a; CtrlJ 书签 - 导入/导出 2、谷歌浏览器&#xff1a; 设置中 导入书签 转载于:https://www.cnblogs.com/AmbiguousMiao/p/8084721.html

选择您的收藏库

这真的是您应该烦恼的吗&#xff1f; java.util.ArrayList和java.util.HashMap从根本上有问题吗&#xff1f; 对于大多数源代码&#xff0c;答案是–不&#xff1b; 这些实现完全可以。 但是&#xff0c;一如既往&#xff0c;细节决定成败。 并存在情况下&#xff0c;当是内置…

里公式后面标号怎么对齐_你若会用Word里F4键,又何须加班到半夜?

F4键在Word里面表示重复上一个操作&#xff0c;但对于这个快捷键&#xff0c;你真的会操作吗&#xff1f;本期与大家分享这个神奇的F4键&#xff0c;助你高效工作。1、批量复制文本在一般情况下&#xff0c;我们是用CtrlC复制内容&#xff0c;CtrlV粘贴内容&#xff0c;但遇到特…

全方位分析web前端如何进行性能优化

前言&#xff1a; 最近刚刚完成项目&#xff0c;空闲一段时间&#xff0c;想起之前有被问起怎么对前端进行性能优化&#xff0c;自己也是脑中零零散散的总不成体系&#xff0c;现特来总结&#xff0c;欢迎补充指教。 1、整体资源 &#xff08;1&#xff09;js、css源码压缩 &a…

DshanMCU-R128s2 SDK 架构与目录结构

R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核异构 SoC&#xff0c;同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。 本文档作为 R128 FreeRTOS SDK 开发指南&#xff0c;旨在帮助软件开发工程师、技术支持工程师快速上手&am…

数据导出

数据导出和数据导入刚好是相反的&#xff0c;把逻辑反过来就可以了。 源码&#xff1a;https://github.com/SeaLee02/FunctionModule/blob/master/UploadFiles/WebDemo/COM/DataToOut.aspx 效果&#xff1a; 然后勾选需要导出的数据&#xff0c;生成Excel 部分前台&#xff1a;…

c语言清空输入缓冲区函数,c语言:C语言清空输入缓冲区在标准输入(stdin)情况 -电脑资料...

C语言清空输入缓冲区在标准输入(stdin)情况下的使用程序1&#xff1a;//功能&#xff1a;先输入一个数字&#xff0c;再输入一个字符&#xff0c;输出hello bit#include int main(){int num 0;char ch ;scanf("%d", &num);scanf("%c", &ch);pri…

Spring MVC 3:上传多个文件

只是在办公室又漫长的一天&#xff0c;数据库不可用&#xff0c;一个团队成员现在滞后一周。 因此&#xff0c;我们必须作为一个团队来交付它。 在Spring3&#xff0c;它看起来很直接上传文件。 但是&#xff0c;从jsp文件上载多个文件几乎没有帮助。 上载多个文件需要完成三件…

spring 事务隔离级别和传播行为_Spring事务传播性与隔离性实战

一、事务传播性1.1 什么是事务的传播性事务的传播性一般在事务嵌套时候使用&#xff0c;比如在事务A里面调用了另外一个使用事务的方法&#xff0c;那么这俩个事务是各自作为独立的事务执行提交&#xff0c;还是内层的事务合并到外层的事务一块提交那&#xff0c;这就是事务传播…

前端为什么非要动静分离 说一下CDN托管的意义

大型Web应用对速度的追求并没有止步于仅仅利用浏览器缓存&#xff0c;因为浏览器缓存始终只是为了提升二次访问的速度&#xff0c;对于首次访问的加速&#xff0c;我们需要从网络层面进行优化&#xff0c;最常见的手段就是CDN&#xff08;Content Delivery Network&#xff0c;…

unity语音聊天之 www.GetAudioClip

最近在开发语音聊天功能,游戏需要跨平台安卓与ios&#xff0c;上传本地录制的wav文件至服务器后&#xff0c;需要根据服务器返回的地址进行语音文件的下载并进行播放。 这里通过使用www进行下载并播放 其中在ios播放时却不行了&#xff0c;查询官方文档后发现&#xff0c;ios必…

轻谈BFC

BFC 定义 CSS2.1的定义 Block formatting contexts 9.4.1 Block formatting contexts Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with overflow other …

Java中的Selenium / WebDriver示例

几年前&#xff0c;我正在忙于一些工作&#xff0c;客户希望了解如何解决现实世界中的问题。 他们要求我自动化woot.com网站上的某些任务。 他们的任务是访问各个网站&#xff0c;并阅读当天商品的名称和价格。 我写了一些Selenium代码&#xff0c;以为可以将其张贴在这里&am…

c语言中怎样实现空格的替换,C语言实现去除字符串中空格的简单实例

在网上看了些去除空格的代码,觉得都不是很简洁,就自己写代码实现它本着高效率,不使用额外存储空间的想法实现该功能去除空格一共有三种&#xff1a;1、去除全部空格&#xff1b;2、一种是去除左边空格&#xff1b;3、去除右边空格想去除左右两边空格&#xff0c;只要先去除左边…

python消息队列中间件_python-RabbtiMQ消息队列

1.RabbitMQ简介AMQP&#xff0c;即Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff0c;是应用层协议的一个开放标准&#xff0c;为面向消息的中间件设计。消息中间件主要用于组件之间的解耦&#xff0c;消息的发送者无需知道消息使用者的存在&#xff…

CSS position(定位)属性

关于CSS position&#xff0c;来自MDN的描述&#xff1a; CSS position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left 属性则决定了该元素的最终位置。 然后来看看什么是文档流(normal flow)&#xff0c;下面是 www.w3.org 的描述&#xff1a; Normal flo…

tomcat配置文件server.xml详解

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 目录(?)[] 元素名 属性 解释 server port 指定一个端口&#xff0c;这个端口负责监听关闭tomcat 的请求 shutdown 指定向端口发送的命令字符串 service name 指定service 的名字 Con…

均值,方差,协方差,协方差矩阵,特征值,特征向量

大牛博客&#xff0c;收藏一下 http://blog.csdn.net/yangleo1987/article/details/52845912转载于:https://www.cnblogs.com/gaohai/p/8086626.html

Java ByteBuffer –速成课程

以我的经验&#xff0c;当开发人员第一次遇到java.nio.ByteBuffer时&#xff0c;会引起混乱和细微的错误&#xff0c;因为如何正确使用它尚不明显。 在我对API文档感到满意之前&#xff0c;需要反复阅读API文档和一些经验以实现一些微妙之处。 这篇文章是关于如何正确使用它们的…

c语言cth三角函数表示,三角函数与双曲函数基本公式对照表

圆函数(三角函数)1.基本性质&#xff1a;sin tan cos x x x ,cos cot sin xx x 1sec cos x x ,1csc sin x x tan cot 1x x sin csc 1x x sec cos 1x x 22sin cos 1x x 221tan sec x x ,221cot csc x x 2.奇偶性&#xff1a;sin()sin x x -- cos()cos x x - tan()tan x x --3.…