2014-04-15 6 views
5

Ich benutze slick2 + postgresql 9.3 + playframework 2Wie Mapping manuell String zu Postgresql Text anstelle von nur Varchar (254)?

Mein Datenmodell ist:

class Page(tag:Tag) extends Table[(Long,Long, String,String,String, Option[Long], Option[Long])](tag, "Page"){ 
    def id=column[Long]("ID", O.PrimaryKey) 
    def subId=column[Long]("subject") 
    def title=column[String]("Title", O.NotNull) 
    def describe=column[String]("Describe") 
    def profile=column[String]("Profile") 
    def icon=column[Long]("icon") 
    def resId=column[Long]("Picture") 
    def * = (id, subId,title, describe, profile,icon.?, resId.?) 
    def page_sub=foreignKey("PA_SU_FK", subId, subject)(_.id) 
    def page_res=foreignKey("PA_RE_FK", resId, resource)(_.id) 

} 

das Problem ist die Spalte String beschreibt und wird Mapping als varchar (254) in der Datenbank sein. Aber eigentlich kann diese Spalte sehr sehr lang sein, ich meine es können 1000-3000 Zeichen sein. Wie man es manuell auf Text in Datamodel abbildet?

Antwort

2

Diese für PostgreSQL funktionieren sollte:

def profile=column[String]("Profile", O.DBType("TEXT")) 

Oder könnten Sie eine benutzerdefinierte TypeMapper, baue ich nie gebaut, aber es gibt eine Menge von Stellen um, wie this Frage SO oder this Frage.

Ich hoffe, es hilft.