小编Ele*_*onk的帖子

MongoDB:数组元素属性的唯一索引

我有一个类似于这样的结构:

class Cat {
  int id;
  List<Kitten> kittens;
}

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

我想阻止用户使用相同ID创建一只有多只小猫的猫.我已经尝试创建索引如下:

db.Cats.ensureIndex({'id': 1, 'kittens.id': 1}, {unique:true})
Run Code Online (Sandbox Code Playgroud)

但是当我尝试插入格式错误的猫时,Mongo会接受它.

我错过了什么吗?这甚至可以做到吗?

mongodb

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

强制初始化Scala单例对象

我正在开发一个基于Dozer的自动映射框架.我不会详细说明,因为它与问题无关,但一般来说它应该允许从A类到B类的简单转换.我想从类的伴随对象中注册投影.

下面是我希望如何工作的(简化)示例,以及确保投影正确注册的Specs测试.

不幸的是,这不起作用.从我可以收集到的,这是因为没有任何东西初始化A伴侣对象.事实上,如果我在A对象上调用任何方法(如注释掉的hashCode调用,则正在正确注册投影.

我的问题是 - 一旦JVM启动,我怎样才能自动初始化A对象?如果有必要,我不介意扩展特性或其他东西.

谢谢.

class A {
  var data: String = _
}

class B {
  var data: String = _
}

object A {
  projekt[A].to[B]

}

"dozer projektor" should {
  "transform a simple bean" in {
//    A.hashCode
      val a = new A
      a.data = "text"
      val b = a.-->[B]

      b.data must_== a.data
  }
}
Run Code Online (Sandbox Code Playgroud)

scala object

12
推荐指数
2
解决办法
9490
查看次数

Scala:列表对的列表

我有一对配对列表:

val pairs = List("a" -> 1, "b" -> 2, "c" -> 3)
Run Code Online (Sandbox Code Playgroud)

我想把它转换成一对列表:

List("a", "b", "c") -> List(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

基本上,我想要zip()的反面

这样做有什么优雅的方式吗?

functional-programming scala scala-collections

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

斯卡拉:嘲弄和蛋糕模式

我一直在尝试采用Cake Pattern,但我很难适应这种编程风格,特别是在涉及单元测试的情况下.

让我们假设我有以下业务对象:

trait Vet {
  def vaccinate(pet: Pet)
}

trait PetStore { this: Vet =>
  def sell(pet: Pet) {
    vaccinate(pet)
    // do some other stuff
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想在模拟Vet的功能时测试PetStore.如果我正在使用合成,我正在创建一个模拟[Vet]并将其传递给PetStore构造函数,然后像在Java世界中那样编写模拟.但是,我找不到人们如何用蛋糕模式做这个的任何参考.

一种可能的解决方案是根据预期的用法在每个测试用例上实施vaccinate(),但这不允许我验证模拟被正确调用,不允许我使用匹配器等.

那么 - 人们如何使用Cake Pattern与模拟对象?

scala mocking

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

Scala中的TraversableOnce,Future和Option用于理解

我有一个表示DB记录的字符串ID列表.我想异步地从数据库加载它们,然后异步上传每个记录到远程服务器,然后当完成所有记录上传后,记录上传的记录的ID.

由于我使用的是Scala 2.9.2,我使用的是Twitter的core-util Future实现,但它应该与Monadic转换的2.10期货完全一样.

一般概念是这样的:

def fetch(id: String): Future[Option[Record]]
def upload(record: Record): Future[String]
def notifyUploaded(ids: Seq[String]): Unit

val ids: Seq[String] = ....
Run Code Online (Sandbox Code Playgroud)

我试图通过for comprehension来做到这一点,但fetch返回Future of Option这一事实使得它变得模糊不清并且代码无法编译:

for {
  id <- ids
  maybeRecord <- fetch(id)
  record <- maybeRecord
  uploadedId <- upload(record)
} yield uploadedId
Run Code Online (Sandbox Code Playgroud)

编译此结果会导致以下错误:

scala: type mismatch;
found   : com.twitter.util.Future[String]
required: Option[?]
    uploadedId <- upload(record)
                  ^
Run Code Online (Sandbox Code Playgroud)

我错过了什么?为什么编译器期望uploadedId是一个选项?有什么好办法可以解决这个问题吗?

monads scala future

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

鼠标悬停在使用jQuery ui.sortable时未触发的事件

我正在使用jQuery UI Sortables对列表之间的项目进行排序,并将项目从一个列表拖放到另一个列表.

这些列表可以与控制展开/折叠操作的标题DIV折叠.我想用鼠标悬停在标题DIV上时自动展开列表,但只有当我正在排序列表时才会这样.

问题是当前排序时(当我正在拖动列表项时),鼠标悬停/鼠标移除事件似乎不会触发页面上的任何对象.

任何人都知道为什么会发生这种情况/如何解决这个问题?

总体布局:

<div class="category">
  <div class="title">title</div>
  <ul class="sortable">
    <li>item 1</li>
    <li>item 2</li>
     ....
  </ul>
</div>
<div class="category">
  ...
</div>
Run Code Online (Sandbox Code Playgroud)

谢谢!

jquery jquery-ui-sortable

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

是否有适用于Java的基于Spring-Security的生产就绪安全包?

我正在为新产品设计安全子系统.该系统需要以下内容:

  • 复杂的用户/组/权限模型,包括服务级别和域级别(ACL)
  • 上面的管理UI
  • 根据用户操作执行的规则(登录失败时帐户禁用,密码复杂性要求等).

在继续实施Spring Security(2.x)缺乏的大多数功能之前,我想知道是否有人熟悉并且可以推荐可能已经实现/支持这些要求的软件包?理想情况下,JAR + WAR可以放入项目中并支持现成的所有内容.

谢谢

java spring spring-security

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

适用于在Mono/MySQL上运行的.NET的免费OLAP解决方案

我正在开发我的大学毕业设计项目,我想要包含一个基于OLAP的报告模块.

在过去,我使用Mondrian和JPivot作为Java项目的OLAP解决方案,我正在寻找类似于.NET的东西.棘手的部分是我的项目应该运行在Mono和MySQL(安装环境是Linux机器)上,因此MSSQL OLAP是不可能的.

任何人都知道我可以使用的类似Mondrian/JPivot的东西吗?我不介意自己创建大多数聚合表,只要我的aspx页面有某种交叉表/数据透视控件

.net mysql mono olap pivot

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

使用Scala规范对Spring应用程序进行单元测试

我们拥有一个高度依赖Spring Framework的大型基础架构.最近我开始在Scala中编写代码并使用Specs进行测试.这一切都很棒,但在某些时候我需要使用依赖于Spring的功能(例如基于HibernateDaoSupport的DAO).

有没有人设法使用SpringJUnit4ClassRunner类来运行Specs测试?有没有人对如何实现这一目标有不同的方向?

谢谢

junit spring specs scala

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

SWT:获得系统设备更改通知(USB设备连接/断开连接)

我正在编写一个SWT应用程序,它需要放在系统托盘中,并在用户连接某个USB设备时自动弹出(该应用程序用作其控制面板).

在本机环境中执行此操作的方法(在这种情况下为win32,但我最终应该是平台无关的)是监听WM_DEVICECHANGE事件,然后检查我的设备是否已断开连接.

谷歌搜索主题,似乎SWT实际上并没有处理这种类型的事件.有没有人知道如何实现这一目标?我的后备解决方案是每隔n秒对USB端口进行采样,寻找设备,但就我而言,这是一个禁止解决的问题......

谢谢和欢呼

夏嘉曦

java usb swt event-handling

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

Scala中的通用伴随对象超类型

我有两个班,Guid和UserGuid.Guid有一个类型参数.UserGuid是Guid的一个特例,代表一个没有类的实体(User),所以我把它实现为Guid [Any].

我有几种Guid的应用方法,我想在两种类型之间共享,所以我将它们放在一个超类(GuidFactory)中.但是,由于Guid是参数化的,我必须参数化GuidFactory特征,否则生成的Guid将被参数化为Guid [_].

因此,我的伴随对象UserGuid无法编译,抱怨:

错误:com.wixpress.framework.scala.UserGuid不带任何类型参数,预期:一个对象UserGuid扩展GuidFactory [UserGuid]

有什么方法可以在Guid和UserGuid之间共享应用方法,还是我必须复制它们或使用转换?

代码如下.

abstract class TypeSafeId[I, T](val id: I) extends Serializable    
class Guid[T](override val id: String) extends TypeSafeId[String, T](id)
class UserGuid(override val id: String) extends Guid[Any](id)

trait GuidFactory[I[A] <: Guid[A]] {
  def apply[T](id: String): I[T]
  def apply[T](id: UUID): I[T] = apply(id.toString)
  def apply[T](ms: Long, ls: Long): I[T] = apply(new UUID(ms, ls))
  def apply[T](bytes: Array[Byte]):I[T] = apply(UUID.nameUUIDFromBytes(bytes))
  def random[T] = apply[T](UUID.randomUUID())
}

object Guid extends GuidFactory[Guid] {
  override def apply[T](id: String) = new Guid[T](id)
} …
Run Code Online (Sandbox Code Playgroud)

generics scala

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

Spring MVC 3.0中的url-action映射和路由

我正在使用Spring MVC 3.0开发一个Web应用程序,并寻找现成的解决方案(如果有的话),或者为可以实现以下目标的url/action映射和路由系统提供"最佳实践"参考:

  • REST友好的控制器/方法名称以查看映射.当前映射实现将请求转换为视图名称,这在使用多个参数时可能会出现问题,并且与REST URL不兼容
  • 一种服务,它接受控制器的名称,方法和参数值,并呈现由它们表示的URL
  • 与Spring Security集成,允许我检查给定的URL是否允许当前用户访问它,以便我可以决定是否呈现URL
  • 基于上述的菜单系统,可以定义由这些动作组成的菜单并将它们呈现给页面

基本上我需要的是能够在一个集中的位置定义URL,以便更改URL(在开发期间;我知道不改变 - 活动网址的想法:))并不意味着查找和更改这个URL在万亿页中.

对这样一个现有解决方案/教程/指南的任何指示都会很棒.

Thanjs

java spring spring-mvc

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