小编Vee*_*Arr的帖子

自动为@Embeddable类的列名添加前缀

我正在开发一个项目,我通过添加Hibernate注释来持久保存一些POJO.有一个问题我运行到是像这样的代码失败,因为Hibernate的尝试中的子字段映射Time_T到同一列(即startTime.secstopTime.sec都试图映射到科拉姆sec,导致错误).

@Entity
public class ExampleClass
{
  @Id
  long eventId;

  Time_T startTime;
  Time_T stopTime;
}

@Embeddable
public class Time_T
{
  int sec;
  int nsec;
}
Run Code Online (Sandbox Code Playgroud)

由于会有很多出现这样在整个系统中,这将是很好,如果有自动追加的前缀列的名称(例如使列是一个选项startTime_sec,startTime_nsec,stopTime_sec,stopTime_nsec),而不必基于每个应用覆盖现场基础.Hibernate是否具备此功能,还是有其他合理的解决方法?

java orm hibernate

30
推荐指数
3
解决办法
9755
查看次数

OSGi容器中的Camel:将InterceptStrategy应用于所有驼峰上下文

我有几个软件包(A,B和C)部署到OSGi容器,每个包含一个CamelContext和一些路由.我有另一个包(M),CamelContext带有一个路由(用于收集监控数据)和一个InterceptStrategybean.我希望InterceptStrategyM中的bean自动应用于CamelContext容器中的所有其他s(即A,B和C中的那些),而不必修改其他bundle.

最终,目标是将每个数据从CamelContextM中窃听到路线中,而不必对A,B或C进行任何更改以明确路由Exchange.这种方法或类似的方法是否可行?

所有CamelContexts都是使用Spring XML配置的.


更新:附加上下文

捆绑包A,B和C包含负责处理数据的核心产品.Bundle M包含一个可选的监控工具,用于测量流经A,B和C的数据的某些参数.目前,添加可选工具需要更改A,B和C中的路由以添加额外的Processors来丰富Exchange使用监控数据并在<to />端点之前读取监控数据.

目标是能够将Bundle M放入已经过验证的A,B和C系统; 并使其自动应用于现有路由,而无需修改现有和工作捆绑包的配置.这可以接受的进行修改,以A,B和C,以支持这一点,只要改变不会导致A,B和C依靠M上运行(即ABC仍然必须运行不M).

如果有比使用拦截器更好的方法,我对此持开放态度.主要目标是:

  1. 保持A,B和C与M分离(特别是在开发期间)
  2. 确保将M与A,B和C集成在一起尽可能简单
  3. 允许集成M而无需手动更改A,B或C.

java osgi apache-camel interceptor osgi-bundle

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

如何在Java 8编译时确保方法签名"实现"功能接口

Java 8中是否存在implements方法关键字的任何模拟?

假设我有一个功能界面:

@FunctionalInterface
interface LongHasher {
    int hash(long x);
}
Run Code Online (Sandbox Code Playgroud)

一个包含3个静态方法的库"实现"这个功能接口:

class LongHashes {
    static int xorHash(long x) {
        return (int)(x ^ (x >>> 32));
    }
    static int continuingHash(long x) {
        return (int)(x + (x >>> 32));
    }
    static int randomHash(long x) {
         return xorHash(x * 0x5DEECE66DL + 0xBL);
    }
}
Run Code Online (Sandbox Code Playgroud)

在将来,我希望能够互换地使用对这3种方法的任何引用作为参数.例如:

static LongHashMap createHashMap(LongHasher hasher) { ... }
...
public static void main(String[] args) {
    LongHashMap map = createHashMap(LongHashes::randomHash);
    ...
}
Run Code Online (Sandbox Code Playgroud)

我如何能确保在编译时间LongHashes::xorHash, …

java java-8 functional-interface

10
推荐指数
2
解决办法
1044
查看次数

setTimeout不能与node.js一起使用

我正在编写mocha测试用例来测试以下步骤.我打算在调用另一个API之前进行API调用并等待30分钟.我正在使用内部节点API编写调用REST API来编写此测试用例.但由于某种原因,setTimeout不等待给定的ms.有人可以帮帮我吗?

 describe('Checkout - ', function() {
   before(function() {
     lapetus = test.Lapetus;
   });
  it('Get purchase contract after session is expired [C123]',     function(done) {
    this.timeout(180000000);
    lapetus.run(function() {
     // create customer
     ......

     // create new cart and add one item
     ......

    // create new contract with empty cart id
    .......
    var pc_id =....;

    // wait for 30 minutes for the session to expire
    console.log('wait... ' + new Date);
    this.setTimeout(getPC(lapetus,pc_id), 18000000);
    console.log('ok... ' + new Date);
    done();
  });
});

  var getPC …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout node.js

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

Memcpy:添加int偏移量?

我正在查看一些C++代码,我遇到了这个memcpy函数.我理解memcpy的作用,但是他们在源代码中添加了一个int.我试着查找memcpy的源代码,但我似乎无法理解添加实际上对memcpy函数做了什么.

memcpy(Destination, SourceData + intSize, SourceDataSize);
Run Code Online (Sandbox Code Playgroud)

换句话说,我想知道SourceData + intSize正在做什么.(我试图将其转换为java.)

编辑:

所以这是我尝试使用for循环在java中执行memcpy函数...

for(int i = 0 ; i < SourceDataSize ; i ++ ) {
      Destination[i] = SourceData[i + 0x100];
}
Run Code Online (Sandbox Code Playgroud)

c c++ memcpy

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

基本编程 - 多维对象的对象数组

我已经坚持了几个小时.

我有一个对象列表:

const myCompanyList = [
    {name: 'coca-cola', size: 'big', color: 'red'},
    {name: 'my-cola', size: 'small', color: 'purple'},
    {name: 'pepsi', size: 'big', color: 'blue'}
];
Run Code Online (Sandbox Code Playgroud)

我需要把它变成这种格式:

myJson = {
    companies: {
        big: {
            coca-cola: {color: 'red'},
            pepsi: {color: 'blue'}
        },
        small: {
            my-cola: {color: 'purple'}
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过这样做:

wrapperObject = {};
innerObject = {};

for each object in myCompanyList {
    innerObject[object.size] = { object.name : {color: object.color}}

}
Run Code Online (Sandbox Code Playgroud)

但是对象[name]位会被覆盖.我怎么写这个,这样我就能在每个对象/地图级别动态获取名字?我是否需要制作另一个内部对象/地图来动态写入名称?

我已经尝试用Java写这个,但我最终得到了5维地图并且它没有用,所以我只是想知道是否有一些简单的我缺少 - 用Java,javascript或伪代码回答谢谢.

javascript maps json javascript-objects

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

SQL:ORDER BY基于两列隔行扫描值

我有一个表将根据两列数字进行排序(称为列X和列Y).在每一行中,两列都可以具有数值(在这种情况下X <= Y),或者其中一列可以为NULL.

示例数据:

      X     Y
    ----- -----
... NULL   26
...  31   NULL
...   1     7
...  39    46
... NULL   36
...  15    16
... NULL   14
...  23    29
Run Code Online (Sandbox Code Playgroud)

我想对这些数据进行排序,以便列"正确"交错.特别:

1)如果两个行中都存在X值,则基于X的顺序.

2)否则,如果Y值存在于两行中,则基于Y的顺序.

3)否则,比较可用的X值和可用的Y值.

示例数据的"正确"排序将是:

      X     Y
    ----- -----
...   1     7
... NULL   14
...  15    16
... NULL   26
...  23    29
...  31   NULL
... NULL   36
...  39    46
Run Code Online (Sandbox Code Playgroud)

在ORDER BY子句中是否有任何简单的方法来执行此排序?

sql sorting sql-order-by

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

Nginx 虚拟主机缓存符号链接

我在部署我的应用程序时遇到了问题。我有一个 PHP 应用程序,我使用 Capistrano 将我的应用程序部署到我的服务器。

Capistrano 使用我的应用程序的最新版本和我当前文件夹的符号链接创建了一个新的发布文件夹。效果很好,它确实链接了最新版本。

但是当我访问我网站的 URL 时,没有任何变化,即使符号链接链接到当前文件夹(最新版本),文件也来自旧版本文件夹。

Nginx 会缓存我的所有文件吗?或者它是否缓存了我的符号链接,我不知道。

文件夹结构:

 current (symlink new release)
 releases
     new release
     old release
Run Code Online (Sandbox Code Playgroud)

虚拟主机:

server {
    listen 443;
    server_name servname.com;
    root /apps/application/production/current/public; 
}
Run Code Online (Sandbox Code Playgroud)

deployment caching capistrano nginx

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

自动保留复杂的Java对象

对于我正在进行的项目,我需要将一些POJO持久化到数据库中.POJOs类定义有时是高度嵌套的,但是它们应该变平,因为嵌套是树状的并且不包含循环(并且基本元素最终是基元/字符串).优选的是,所使用的解决方案为每种数据类型创建一个表,并且表将在POJO中具有每个基元成员一个字段.子类化和类似问题不是这个特定项目的问题.

有没有人知道任何现有的解决方案可以:

  1. CREATE TABLE从类定义中自动生成定义
  2. 在给定对象实例的情况下,自动生成查询以将对象持久保存到数据库
  3. 自动生成查询以从数据库中检索对象,并在给定密钥的情况下将其作为POJO返回.

可以通过对类文件的最小修改/注释和最小外部配置来执行此操作的解决方案是首选.


例:

Java类

//Class to be persisted
class TypeA {
  String guid;
  long timestamp;
  TypeB data1;
  TypeC data2;
}

class TypeB {
  int id;
  int someData;
}

class TypeC {
  int id;
  int otherData;
}
Run Code Online (Sandbox Code Playgroud)

可以映射到

CREATE TABLE TypeA (
  guid CHAR(255),
  timestamp BIGINT,
  data1_id INT,
  data1_someData INT,
  data2_id INt,
  data2_otherData INT
);
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

java sql persistence hibernate

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