Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

设置name translate为自定义规则时,select可以按照自定义规则转换字段名,但是insert和其他复杂操作还是会将字段名转为小写字母+下划线的命名风格 #96

Closed
gayeed opened this issue May 11, 2024 · 2 comments

Comments

@gayeed
Copy link

gayeed commented May 11, 2024

相关issue: #8
bee 版本:2.2
代码中的设置方式为:

HoneyContext.setCurrentNameTranslate(new NameTranslate() {
            @Override
            public String toTableName(String entityName) {
                return entityName;
            }

            @Override
            public String toColumnName(String fieldName) {
                return fieldName;
            }

            @Override
            public String toEntityName(String tableName) {
                return tableName;
            }

            @Override
            public String toFieldName(String columnName) {
                return columnName;
            }
        });

由于我们这边数据表的表名和字段是驼峰式命名,正确的查询sql(示例)为

SELECT exampleColumn FROM ExampleTable;
INSERT INTO ExampleTable (exampleColumn) VALUES (1);

在select查询时会不转换字段名称,但是bee在执行insert时,生成的的sql是:

INSERT INTO example_table (example_column) VALUES (1);

请问应该如何解决这种问题

@automvc
Copy link
Owner

automvc commented Jun 8, 2024

#default implement translate type. 1 : order_no<-->orderNo(DB<-->Java), 2: ORDER_NO<-->orderNo(DB<-->Java),
#3: original, 4 : DbUpperAndJavaLower(since 1.17), ORDER_NO<-->order_no(DB<-->Java)
#if want to use other naming rule, you can define a new class implements NameTranslate
#default value is :1
bee.osql.naming.translateType=3

原样输出,可以使用3: original
即:
bee.osql.naming.translateType=3

另,你说的问题,我们会进一步排查.,

@automvc
Copy link
Owner

automvc commented Jun 8, 2024

对于HoneyContext.setCurrentNameTranslate,
    * 设置只一次有效.  AbstractCommOperate在执行SUID操作返回前会清除.
 * 若整个应用只有一个自定义的NameTranslate,可以使用
 *NameRegistry.registerNameTranslate(nameTranslate)进行设置.

@gayeed gayeed closed this as completed Jun 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants