将OneToMany关系定义为关系的一个方面

时间:2018-04-11 14:48:05

标签: hibernate one-to-many dropwizard

您好我有以下OneToMany关系,其中Request可以有许多服务。我在Request上定义了关系如下

    @Entity
    @Table(name = "Request")
    public class Request {

          @JsonProperty
          @OneToMany(mappedBy = "request")
          Set<Service> services;
}

在服务类

  Request request;

当我启动服务器时,它出错并显示以下消息

! com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: BLOB/TEXT column 'request' used in key specification without a key length

我不确定为什么它会认为请求是带有文本的列。我在这段关系中错过了什么?这种关系应该在关系的两边定义吗?

1 个答案:

答案 0 :(得分:0)

你可以使用ManyToOne()单向映射来解决这个问题,如下所述。

 @Entity
    @Table(name = "Request")
    public class Request {

   // Nothing
}

@Entity
@Table(name ="Service")
public class Service{

    @ManyToOne()
    @JoinColumn(name = "request_id", nullable= false)
    public Request request;
}