2014-04-15 8 views
5

używam slick2 + PostgreSQL 9.3 + playframework 2Jak ręcznie odwzorować ciąg na tekst postgresql zamiast tylko varchar (254)?

Mój model danych jest:

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) 

} 

problem jest kolumna opisać String jest i będzie mapping jako varchar (254) w bazie danych. Ale w rzeczywistości ta kolumna może być bardzo długa, mam na myśli 1000-3000 znaków. jak ręcznie odwzorować go na tekst w Datamodelu?

Odpowiedz

2

To powinno działać dla PostgreSQL:

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

Albo można zbudować zwyczaj TypeMapper, nigdy nie zbudował jeden, ale istnieje wiele stanowisk wokół, jak this SO pytanie lub this pytanie.

Mam nadzieję, że to pomaga.

Powiązane problemy