У меня есть сущность с @GenericGenerator
:GenericGenerator не генерирует значение
@Entity
public class Report {
@Id
@GenericGenerator(name = "generator", strategy = "foreign",
parameters = @Parameter(name = "property", value = "examrequisitions"))
// @GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(nullable = false, unique = true)
private Long id;
... // outcome, status
}
Когда я сохраняю, что объект он показывает следующее исключение:
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'id' cannot be null
Error Code: 1048
Call: INSERT INTO SystemCardiologyReports.REPORTS (ID, OUTCOME, STATUS) VALUES (?, ?, ?)
bind => [3 parameters bound]
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'id' cannot be null
Почему идентификатор null
- несмотря на @GenericGenerator
?
Я думаю, что сообщение об ошибке ясна: отсутствует идентификатор для объекта. Вы не добавили '@GeneratedValue (generator =" generator ")' к вашему идентификатору. Только '@ GenericGenerator' не указывает на создание значения для идентификатора. –
Я думаю, что вы плохо читали, в нем содержатся исходные строки «Model Reports». – developer033
Вы имеете в виду '// @GeneratedValue (strategy = GenerationType.IDENTITY)'? Вы должны проверить определение '//' (= строки комментариев). И даже без комментариев, вы не ссылаетесь на генератор. –