☰
Current Page
Main Menu
Home
Home
Editing
为什么字段没有显示中文
Edit
Preview
h1
h2
h3
default
Set your preferred keybinding
default
vim
emacs
markdown
Set this page's format to
AsciiDoc
Creole
Markdown
MediaWiki
Org-mode
Plain Text
RDoc
Textile
Rendering unavailable for
BibTeX
Pod
reStructuredText
Help 1
Help 1
Help 1
Help 2
Help 3
Help 4
Help 5
Help 6
Help 7
Help 8
Autosaved text is available. Click the button to restore it.
Restore Text
# 为什么字段没有显示中文 ## 使用 ManyToOne,但是 One 方没有字段标记 displayForModel 例如订单关联物料,我们想要在订单列表显示物料的中文名 首先物料需要声明使用哪个字段来作为中文名显示 ```java @Model public class Material extend BaseModel<Material> { @Property(displayForModel = true) private String name; } @Model public class Order extend BaseModel<Order> { @ManyToOne @JoinColumn private Material material; } ``` ## 确保调用 search 的时候,meta 的 arguments 包含 useDisplayForModel = true 显示中文有多种方式 1. 使用 @Dict 注解声明字典 2. 使用 ManyToOne 关联其他模型 3. 使用 @Selection 关联其他模型 4. 使用 @Selection 执行 method 动态查询值 5. 使用 @Property 的 computeMethod 动态计算值 为了方便前端查询中文值,前端每次请求都会传入一个参数 useDisplayForModel = true。 但是引擎出于性能考虑(上面的方式会涉及到表关联或者方法调用),在每一次调用完查询后, 都会将 useDisplayForModel 这个标识删除。 所以如果你重写了 search 方法,例如 ```java public List<Material> search(Filter filter, List<String> properties, Integer limit, Integer offset, String order) { // 调用了其他模型的 search 方法 getMeta().get("other_model").search(); // 最后调用了本模型的 search 方法 // 由于上一步的查询,meta 里面 useDisplayForModel 标识被删除了 // 所以下面 search 的时候,引擎不会去做关联查询、或者调用 computeMethod return super.search(filter, proerties, limit, offset, order); } ``` 你可以明确指定 useDisplayForModel = true ```java public List<Material> search(Filter filter, List<String> properties, Integer limit, Integer offset, String order) { // 调用了其他模型的 search 方法 getMeta().get("other_model").search(); // 最后调用了本模型的 search 方法 // 由于上一步的查询,meta 里面 useDisplayForModel 标识被删除了 getMeta().addArgument(MetaConstant.USE_DISPLAY_FOR_MODEL, true); return super.search(filter, proerties, limit, offset, order); } ``` ## 查询的时候 properties 是 `*` 号 ```java public List<Material> search(Filter filter, List<String> properties, Integer limit, Integer offset, String order) { getMeta().addArgument(MetaConstant.USE_DISPLAY_FOR_MODEL, true); // 如果 properties 是 *,那么引擎也不会去做关联查询,或调用 computeMethod return super.search(filter, Arrays.asList("*"), limit, offset, order); } ```
Uploading file...
Sidebar
[[_TOC_]]
Edit message:
Cancel