有没有办法可以在Slick中巧妙地进行upsert操作?以下工作,但太模糊/冗长,我需要明确说明应更新的字段:
val id = 1
val now = new Timestamp(System.currentTimeMillis)
val q = for { u <- Users if u.id === id } yield u.lastSeen
q.update(now) match {
case 0 => Users.insert((id, now, now))
case _ => Unit
}
Run Code Online (Sandbox Code Playgroud) 如何指定Android布局视图元素的背景"颜色"应该是渐变(以特定角度)?
我希望在XML中指定它,即不在运行时.最好作为一种风格,我可以申请任何我希望与style
财产的布局?
在Java中,协方差允许API设计者指定实例可以被概括为某种类型或任何该类型的子类型.例如:
List<? extends Shape> shapes = new ArrayList<Circle>();
// where type Circle extends Shape
Run Code Online (Sandbox Code Playgroud)
反方差则是另一种方式.它允许我们指定实例可以概括为某种类型或超类型.
List<? super Shape> shapes = new ArrayList<Geometry>();
// where Shape extends Geometry
Run Code Online (Sandbox Code Playgroud)
Java泛型的逆变是如何有用的?你什么时候选择使用它?
通过https://github.com/google/guava/wiki/FunctionalExplained查看我看到像transform这样的操作,它将转换列表但保持相同的基数.如何执行导致不同基数的转换?例如(伪代码)List(1,2,3).transform(i => List(i, i))
- >List(1,1,2,2,3,3)
将SBT项目的目标包设置为可执行jar文件的最佳方法是什么?
它需要捆绑scala-library.jar并为main-method设置清单.
我试图在ScalaCheck中生成可选参数,但没有成功.
似乎没有直接机制.Gen.containerOf[Option, Thing](thingGenerator)
失败,因为它无法找到隐含的Buildable[Thing, Option]
.
我试过了
for {
thing <- Gen.listOfN[Thing](1, thingGenerator)
} yield thing.headOption
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为listOfN
产生一个总长度为N的列表.结果我总是得到一个Some[Thing]
.类似地,listOf1
不起作用,因为(a)它不产生空列表,而且(b)它效率低,因为我不能设置元素数量的最大限制.
我怎样才能生成Option[Thing]
包含Nones的内容?
编辑:我找到了解决方案,但它并不简洁.有比这更好的方法吗?
for {
thing <- for {
qty <- Gen.choose(0,1)
things <- Gen.listOfN[Thing](qty, thingGenerator)
} yield things.headOption
} yield thing
Run Code Online (Sandbox Code Playgroud)
编辑2:我将此概括为
def optional[T](g: Gen[T]) =
for (qty <- Gen.choose(0, 1); xs <- Gen.listOfN[T](qty, g)) yield xs.headOption
Run Code Online (Sandbox Code Playgroud)
所以我不必多次写它.但肯定这已经在图书馆了,我只是错过了它?
我需要调用Class.getMethod(java.lang.String,java.lang.Class ...)来获取一个方法,其中一个varargs参数是一个varargs.
目前我正在尝试:
// to get jdbcTemplate.queryForObject(RowMapper, Object...)
jdbcTemplate.getClass().getMethod("queryForObject", RowMapper.class, Object.class);
Run Code Online (Sandbox Code Playgroud)
哪个结果,不足为奇
Caused by: java.lang.NoSuchMethodException: org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(java.lang.String, org.springframework.jdbc.core.RowMapper, java.lang.Object)
at java.lang.Class.throwNoSuchMethodException(Class.java:283)
at java.lang.Class.getMethod(Class.java:825)
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
在SQL Server 2005中,我可以发出SQL查询来列出数据库中表的所有FK约束,并显示删除规则吗?(即没有,级联,设置为null或设置默认值)
我正在寻找的输出类似于:
FK_NAME ON_DELETE
==================================
FK_LINEITEM_STATEMENT CASCADE
FK_ACCOUNTREP_CLIENT NOTHING
Run Code Online (Sandbox Code Playgroud) 是否有可能从joda-time DateTimeFormatter获取模式字符串?
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");
String originalPattern = formatter. ???
Run Code Online (Sandbox Code Playgroud) 我有每行1个json文档start_id
和end_id
每个文档中的字段和文件.我想使用jq来提取它们并将它们打印在同一行上.
到目前为止,我有:
cat part* | jq '"\(.start_id) \(.end_id)"' | sed s/\"//g | head
Run Code Online (Sandbox Code Playgroud)
这有效,但我需要sed
删除双引号.
为了改善我的jq-foo,有没有办法在不使用sed的情况下做到这一点?
例如给定
{"start_id":1,"end_id":50}
{"start_id":50,"end_id":99}
{"start_id":99,"end_id":12}
Run Code Online (Sandbox Code Playgroud)
得到
1 50
50 99
99 12
Run Code Online (Sandbox Code Playgroud)
代替
"1 50"
"50 99"
"99 12"
Run Code Online (Sandbox Code Playgroud) java ×4
scala ×4
android ×1
constraints ×1
generics ×1
guava ×1
jodatime ×1
jq ×1
json ×1
reflection ×1
sbt ×1
scalacheck ×1
slick ×1
sql ×1
sql-server ×1
t-sql ×1