小编Kom*_*owy的帖子

Oracle标识列并插入到select中

Oracle 12引入了很好的功能(应该很久以前就已经存在了!) - 标识列.所以这是一个脚本:

CREATE TABLE test (
    a INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    b VARCHAR2(10)
);

-- Ok
INSERT INTO test (b) VALUES ('x');

-- Ok
INSERT INTO test (b)
SELECT 'y' FROM dual;

-- Fails
INSERT INTO test (b)
SELECT 'z' FROM dual UNION ALL SELECT 'zz' FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

前两个插入运行没有问题,提供'a'为1和2的值.但第三个插入失败ORA-01400: cannot insert NULL into ("DEV"."TEST"."A").为什么会这样?一个bug?关于标识列限制的文档部分中没有提到这样的内容.或者我只是做错了什么?

oracle identity-column oracle12c

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

Rails 4急切加载一个对象

我正试图从实例化对象中加载关联,即不是与父对象一起读取关联...

User.includes(:characters).first
Run Code Online (Sandbox Code Playgroud)

...推迟直到我确定它真的需要并执行以下操作:

u = User.first
# Other stuff ...
u.eager_load(:characters)
Run Code Online (Sandbox Code Playgroud)

在Rails 3中,我用这种方法增强了ActiveRecord:

def eager_load(*args)
  ActiveRecord::Associations::Preloader.new(self, *args).run
end
Run Code Online (Sandbox Code Playgroud)

它工作得很好.Rails 4改变了这一部分,我将方法更新为:

def eager_load(*args)
  ActiveRecord::Associations::Preloader.new.preload(self, *args)
end
Run Code Online (Sandbox Code Playgroud)

不幸的是,它现在做了一些奇怪的事情.看一看:

2.1.2 :001 > u = User.first
[2015-01-06 23:18:03] DEBUG ActiveRecord::Base :   User Load (0.3ms)  SELECT  `users`.* FROM `users`  ORDER BY `users`.`id` ASC LIMIT 1
 => #<User id: 1, ...> 
2.1.2 :002 > u.eager_load :characters
[2015-01-06 23:18:07] DEBUG ActiveRecord::Base :   Character Load (0.2ms)  SELECT `characters`.* FROM `characters` WHERE `characters`.`user_id` IN (1)
[2015-01-06 23:18:07] DEBUG ActiveRecord::Base …
Run Code Online (Sandbox Code Playgroud)

eager-loading ruby-on-rails-4 rails-activerecord

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

DAG 运行时 DAG/Operator 发生变化

  1. 如果 DAG 在 DAG 运行时发生更改(特别是动态 DAG),会发生什么情况
  2. 如果在某些 DAG 运行期间更改自定义运算符的代码会发生什么

airflow

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

设置scala-logging的日志级别

我的控制台应用程序可以log-level=<LEVEL>选择.看一下Java中的一些例子,看起来通常可以改变SLF4J记录器级别,但是使用scala-logging库似乎并非如此 - 无论我如何创建记录器,它都没有setLevel可用的方法.有什么建议?

logging scala scala-logging

6
推荐指数
2
解决办法
6335
查看次数

使用子类的类型实现特征方法

我想要一个特征Foo来提供transform可以对其应用函数的方法。另外,我想强制实现类具有一种increment可以某种方式转换对象的方法。天真的解决方案:

trait Foo {
  def transform(fun: Foo => Foo): Foo = fun(this)
  def increment(n: Int): Foo
}

case class A(a: Int) extends Foo {
  // expecting available: transform(fun: A => A): A
  // to be implemented: increment(n: Int): A
  ...
}
Run Code Online (Sandbox Code Playgroud)

上面将无法工作......继承transform仍预计Foo => Foo,不A => Aincrement仍想返回Foo,没有A

再尝试一次:

trait Foo {
  def transform[C <: Foo](fun: C => C): C = fun(this.asInstanceOf[C])
  def increment[C …
Run Code Online (Sandbox Code Playgroud)

inheritance scala traits

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