Я использовал MySQLWorkbench в качестве инструмента моделирования для создания своей базы данных. Я создал простую тестовую базу данных для тестирования JPA/Eclipselink, сущности Netbeans и генератора веб-сервисов. Когда я создаю сущности и службы, я получаю сообщение об ошибке, подобное этому:
Exception Description: [class com.rako.rma.Rma] uses a non-entity [class com.rako.rma.Product] as target entity in the relationship attribute [field productserialNumberLOTN].
at org.eclipse.persistence.exceptions.ValidationException.nonEntityTargetInRelationship(ValidationException.java:1378)
Объект RMA
public class Rma implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "rma_id")
private Integer rmaId;
@Size(max = 45)
@Column(name = "temp1")
private String temp1;
@JoinColumn(name = "product_serialNumber_LOTN", referencedColumnName = "serialNumber_LOTN")
@ManyToOne(optional = false)
private Product productserialNumberLOTN;
Сущность продукта
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "serialNumber_LOTN")
private String serialNumberLOTN;
@Size(max = 45)
@Column(name = "temp1")
private String temp1;
@Size(max = 45)
@Column(name = "temp2")
private String temp2;
@JoinColumn(name = "serialNumber_LOTN", referencedColumnName = "LOTN", insertable = false, updatable = false)
@OneToOne(optional = false)
private SerialNumber serialNumber;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "productserialNumberLOTN")
private Collection<Rma> rmaCollection;
Серийный номер объекта
public class SerialNumber implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "LOTN")
private String lotn;
@Size(max = 45)
@Column(name = "temp")
private String temp;
@OneToOne(cascade = CascadeType.ALL, mappedBy = "serialNumber")
private Product product;
Вопрос
1) Я неправильно спроектировал свою БД?
2) Правильно ли работает генератор Netbeans JPA?
3) Если это не работает на 100%, как я могу исправить свою нотацию jpa, чтобы эти отношения работали?
Product
какое-либо лямбда-выражение. С ним связана ошибка. - person Jin Kwon   schedule 18.09.2015