小编Pau*_*ley的帖子

如何使用camelCase将Hibernate实体字段映射到snake_case(下划线)数据库标识符

我在下划线中有数据库字段.我在camelcase中有实体字段.我无法改变其中任何一个.

有什么东西,也许是类级注释,我可以用来默认实体列名注释到camelcase等价物?

例如,我有一个像这样的实体:

@Entity
public class AuthorisationEntity {

    @Column(name = "non_recoverable")
    private BigDecimal nonRecoverable;

    @Column(name = "supplier_recoverable")
    private BigDecimal supplierRecoverable;

    @Column(name = "refund_amount")
    private BigDecimal refundAmount;

}
Run Code Online (Sandbox Code Playgroud)

我梦见这个:

@Entity
@DatabaseIsUnderscoreAndThisAnnotationConvertsThemToCamelCaseByDefault
public class AuthorisationEntity {

    private BigDecimal nonRecoverable;

    private BigDecimal supplierRecoverable;

    private BigDecimal refundAmount;

}
Run Code Online (Sandbox Code Playgroud)

java annotations hibernate

27
推荐指数
3
解决办法
3万
查看次数

angularjs ng-false-value设置为空

如果我有一个像这样的角度的复选框:

<div ng-repeat="(key,option) in metaItem.fieldOptions">
    <input type="checkbox" 
           name="metaField[]"
           ng-model="issueForView.metaData[subIndex].fieldValue[key]"
           ng-true-value="'{{option.optionValue}}'" 
           ng-false-value="'{{null}}'">     
           {{option.optionPlaceholder}}
</div>
Run Code Online (Sandbox Code Playgroud)

所以ng-model,issueForView.metaData[subIndex].fieldValue[key]最初是空的,它是这样的:

{}
Run Code Online (Sandbox Code Playgroud)

说我点击供应商的选项,我得到这个:

{"0":"Supplier"}
Run Code Online (Sandbox Code Playgroud)

然后,如果我取消选择,我得到这个:

{"0":""}
Run Code Online (Sandbox Code Playgroud)

取消选择我想要的是:

{}
Run Code Online (Sandbox Code Playgroud)

这是为了使其与我正在替换的代码保持一致.有什么建议?

javascript angularjs

5
推荐指数
1
解决办法
4259
查看次数

将单引号作为ng-true-value表达式传递动态值失败

我有我的复选框输入,它根据变量动态设置"true"值,该变量trueVal是一个字符串.

<input ng-model="foo" ng-true-value="'{{trueVal}}'">
Run Code Online (Sandbox Code Playgroud)

例如,对于trueVal = "something",foo === "something"当复选框被选中.

除了在trueVal等于带有单引号的字符串的情况下,这种方法有效:Customer didn't understand.在这种情况下,有一个错误:

错误:[$ parse:lexerr] Lexer错误:表达式['客户不理解']中第27-28行[']的未终止引用.

我无法删除单引号,因为字符串应按原样设置foo.

更广泛的背景:

我正在根据options我从后端获得的列表创建一组复选框:

<div ng-repeat="(key,option) in options">
  <input type="checkbox" 
         ng-model="foo[key]"
         ng-true-value="'{{option.trueVal}}'"
         ng-false-value="null">
</div>
Run Code Online (Sandbox Code Playgroud)

所以,给定:

options =  {
             0: {trueVal: "Customer was late"},
             1: {trueVal: "Customer didn't understand"}
           };
Run Code Online (Sandbox Code Playgroud)

我希望看到:

foo = {
  1: "Customer didn't understand"
};
Run Code Online (Sandbox Code Playgroud)

如果选中第二个框.

angularjs

5
推荐指数
1
解决办法
8566
查看次数

从头开始构建liquibase数据库

当我从头开始运行 liquibase update 时,该过程会一一触发每个变更日志,这需要一段时间。有时,我自己的数据库更改差异很大,例如,如果我想重新开始,则最容易重建数据库。

如果我在变更日志中的某个点从 liquibase 结果的 mysql 转储中进行重建,那么重建将是最快的,并且我之前忽略了那里的变更日志。因此,我会删除主变更日志中的所有内容,除了主构建转储变更日志(这将是整个数据库),并且出于版本控制原因,我保留实际的变更日志。

是否有适当/指定/安全的方法从 liquibase 执行此操作?

mysql liquibase

5
推荐指数
1
解决办法
2386
查看次数

Java intellij多行字符串

我目前正在使用inttelij for java,作为一个phpstorm用户以前我习惯于设置字符串这样的跨度多行(我知道这是不正确的Java语法):

@Query("select count(*) from table where
        value= :xxx
        AND value= :xxx2")
Run Code Online (Sandbox Code Playgroud)

当它希望设置如下:

@Query("select count(*) from table where "+
       "value= :xxx "+
       "AND value2 =:xxx2)
Run Code Online (Sandbox Code Playgroud)

是否有某种字符串编辑器插件我可以在intelliJ上使用,或者某种代码格式化选项我可以用来使这或多或少像phpstorm?

java string intellij-idea phpstorm

3
推荐指数
1
解决办法
4169
查看次数

将表 INT 值从有符号执行更改为无符号执行

我有一个主键为最大签名INT命中的表,2147483647

想象一下,我想将它切换为无符号,并且表中没有负值,因为它是主键,因为我目前认为这是让表再次运行的最快方法。

ALTER TABLE其切换为无符号的语句是否应该INT是一个相对较快的过程,因为 id 的值不应该改变?锁怎么办?

mysql int

3
推荐指数
1
解决办法
3673
查看次数

Latin-1/UTF-8编码php

我有一个UTF-8编码的db,混合了Latin-1.(我认为这就是问题)

这是角色在数据库中的外观.

İ (should be ?)
è
Run Code Online (Sandbox Code Playgroud)

当我将标题设置为

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)

然后角色出现:

 ?
 ?
Run Code Online (Sandbox Code Playgroud)

当我删除标题时,它们会在数据库中出现.我希望他们这样出来:

 ?
 è
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我正在寻找一种方法来解决这个问题.我目前无法纠正数据本身,这是正确的做法.

php mysql utf-8

2
推荐指数
1
解决办法
3万
查看次数

phpUnit-测试类中不是测试的函数

我正在phpunit中的报告之间进行一些速度比较,因为我试图找出一个优化问题。

我有一些功能不一定要测试,但是也不属于项目的功能。我使用它们是为了使我的测试小巧易读。我正在使用的函数对传递给我的参数执行cUrl操作。

因此,我正在运行两个Urls(一个项目的两个版本,一个版本以其原始形式,一个版本进行了优化),并查看它们是否返回彼此相等的文本。我不会在应用程序本身中执行此操作。我这样做是因为它比尝试找出正确的函数调用要快,因为该项目有点混乱。

所以我有一个像这样的测试:

public function testOne(){

    $results = $this->testRange(13,1,2013,16,1,2013);
    $this->assertEquals($results['opt'], $results['non_opt']);

}//tests
Run Code Online (Sandbox Code Playgroud)

还有我的两个非测试功能:

protected function testRange($fromDay,
                          $fromMonth,
                          $fromYear,
                          $toDay,
                          $toMonth,
                          $toYear){

    $this->params['periodFromDay'] = $fromDay;
    $this->params['periodFromMonth'] = $fromMonth;
    $this->params['periodFromYear'] = $fromYear;
    $this->params['periodToDay'] = $toDay;
    $this->params['periodToMonth'] = $toMonth;
    $this->params['periodToYear'] = $toYear;

    $this->data['from']=$fromDay."-".$fromMonth."-".$fromYear;
    $this->data['to']=$toDay."-".$toMonth."-".$toYear;;

    return $this->testRunner();

}//testOneDay


protected function testRunner(){

    //include"test_bootstrap.php";
    $response = array();

    foreach($this->types as $key=>$type){

        $params = http_build_query($this->params);
        $url=$this->paths[$type];
        $curl_url = $url."?".$params;
        $ch = curl_init($curl_url);
        $cookieFile = "tmp/cookie.txt";

        if(!file_exists($cookieFile))
        {

            $fh = fopen($cookieFile, "w");
            fwrite($fh, "");
            fclose($fh);

        }//if

        curl_setopt($ch,CURLOPT_COOKIEFILE,$cookieFile);
        curl_setopt($ch,CURLOPT_COOKIEJAR,$cookieFile); …
Run Code Online (Sandbox Code Playgroud)

php phpunit curl

1
推荐指数
1
解决办法
677
查看次数

在intellij中获取git diff中的所有文件

是否有一种快速方法可以在intellij中以2次提交之间的差异打开所有文件?

我在gitlab中查看我的差异,我认为在那里进行编辑会更容易,但我想要IDE的好处.

git version-control diff intellij-idea

1
推荐指数
2
解决办法
2434
查看次数

从MYSQL中选择出错

从MYSQL中选择错误就行了 ResultSet rs = st.executeQuery(fetch_title);

错误消息:您的SQL语法中有错误; 检查与MySQL服务器版本对应的手册,以便在第1行':09:53'附近使用正确的语法

String test = "27-May-2016 11:09:53";
String fetch_title = "SELECT title FROM competitor_analysis WHERE cron_date_time="+test+"";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(fetch_title);
Run Code Online (Sandbox Code Playgroud)

java mysql

0
推荐指数
1
解决办法
81
查看次数