JPA - Сохранение однонаправленного отношения один-ко-многим не удается с EclipseLink

Я пытаюсь сохранить очень простое однонаправленное отношение «один ко многим», но EclipseLink (2.3.1) не удается.

Класс обслуживания (родитель):

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

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="service_id")
    public long serviceID;

    @Column(name="name")
    public String name;

    @OneToMany(cascade={CascadeType.ALL})
    @JoinColumn(name="service_id", referencedColumnName="service_id")
    public Set<Parameter> parameters;
}

Класс параметров (дочерний):
(Конечно, в базе данных есть поле внешнего ключа "service_id", которое не представлено в классе, так как это однонаправленное отношение).

@Entity
@Table(name = "tbl_service_parameters2")
public class Parameter implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="param_id")
    public long parameterID;

    @Column(name="name")
    public String name;
}

И это код для сохранения сущности:

    Service service = new Service();
    service.parameters = new HashSet<Parameter>();
    service.name = "test";
    Parameter param = new Parameter();
    param.name = "test";
    service.parameters.add(param);
    em.persist(service);
    em.flush();

Я получаю это исключение:

Internal Exception: java.sql.SQLException: Field 'service_id' doesn't have a default value
Error Code: 1364
Call: INSERT INTO tbl_service_parameters2 (name) VALUES (?)
    bind => [test]

EDIT: Поле базы данныхservice_id имеет (и должно иметь) ограничение not-null из-за характера данных.

Это ошибка или что-то не так в коде?

Ответы на вопрос(6)

Ваш ответ на вопрос