2015-06-18 331 views
0

我不能找到解決這個問題:斯卡拉:通用方法

這個特點:

trait BasicRepository[Schema <: Table[Entity] with Identifiable[Entity], Entity] 

而且這樣的:

trait ProfilePartRepository[Schema <: Table[Entity] with ProfilePart[Entity], Entity] 

這個對象:

object PhoneNumberRepository extends BasicRepository[PhoneNumbers, PhoneNumber] with ProfilePartRepository[PhoneNumbers, PhoneNumber] { 

而這個方法:

def insertProfilePart[Schema <: Table[Entity] with Identifiable[Entity], Entity](repository: BasicRepository[Schema, Entity], entities: Seq[Entity]) : Seq[Future[Int]] 

該方法不編譯。但我認爲你可以看到我想達到的目標。簽名有什麼樣子?

編輯:其實我不關心方法中的「模式」,它只是一個有效的BasicRepository。

EDIT2:編譯錯誤(調用方法時,與AgnosticDriver.api是slick.driver.JdbcDriver):

inferred type arguments [persistence.slickSchemas.PhoneNumbers,Product with Serializable] do not conform to method insertProfilePart's type parameter bounds [Schema <: persistence.AgnosticDriver.api.Table[Entity] with persistence.slickSchemas.Identifiable[Entity],Entity] 
+2

什麼是編譯錯誤? –

+0

加入問題: 推斷的類型參數[persistence.slickSchemas.PhoneNumbers,Product with Serializable]不符合方法insertProfilePart的類型參數bounds [Schema <:persistence.AgnosticDriver.api.Table [Entity] with persistence.slickSchemas.Identifiable [實體],實體] –

+1

從目睹這個問題我不明白爲什麼它會給你帶來困難。是否可以創建重現錯誤的代碼的獨立(可編譯)版本?然後有人可以至少嘗試一下,看看發生了什麼。 – marios

回答

0

所以感謝您的意見。我太愚蠢,無法閱讀,想想容易的失敗。

我只是將錯誤的參數傳遞給「insertProfilePart」...