сделать строки класса сущностей доступными только для чтения в JPA - PullRequest
0 голосов
/ 25 августа 2010

Я могу получить значения, используя JPA, когда я сопоставил только одну таблицу

Теперь, когда я пошел на отображение связанных таблиц, я получаю ошибку

  Only one may be defined as writable, all others must be specified read-only.
  Mapping: org.eclipse.persistence.mappings.OneToOneMapping[userId1]

Я использую [EclipseLink-0] (Eclipse Persistence Services - 2.0.1.v20100213-r6600)

В одной из дочерних таблиц у меня есть этот код

@OneToMany(cascade = CascadeType.ALL, mappedBy = "albumId")
private Collection<Images> imagesCollection;
@JoinColumn(name = "user_id", referencedColumnName = "User_ID")
@ManyToOne(optional = false)
private Roleuser userId;
@JoinColumn(name = "album_image", referencedColumnName = "image_id")
@ManyToOne
private Images albumImage;
@JoinColumn(name = "album_image", referencedColumnName = "image_id")
@ManyToOne
private Images albumImage1;
@JoinColumn(name = "user_id", referencedColumnName = "User_ID")
@ManyToOne(optional = false)
private Roleuser userId1;

Какие изменения мне нужно сделать в этомкод для того, чтобы сделать поля доступными только для чтения?

или есть ли лучший обходной путь, чтобы не делать эти поля доступными только для чтения?

1 Ответ

1 голос
/ 25 августа 2010

У вас есть два отношения ManyToOne, использующие одно и то же поле внешнего ключа.Это не имеет смысла, это будет один и тот же объект?

@JoinColumn(name = "album_image", referencedColumnName = "image_id")
@ManyToOne
private Images albumImage;
@JoinColumn(name = "album_image", referencedColumnName = "image_id")
@ManyToOne
private Images albumImage1;

У вас должно быть два разных поля внешнего ключа, т.е.

...