Поле идентификатора объекта JPA с последовательностью SQL Server 2002JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Поле идентификатора объекта JPA с последовательностью SQL Server 2002

Сообщение Anonymous »

Я пытаюсь подключить службу Spring Boot к базе данных SQL Server 2022, но у меня возникают проблемы с последовательностью действий:

Код: Выделить всё

public class SomeEntity {

@Id
@SequenceGenerator(name = "some_seq", schema = "sch_some", sequenceName = "some_seq", allocationSize = 1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "some_seq")
@Column(name = "id", columnDefinition = "decimal")
private Long id;

...
}
Вот ошибка, которую я получаю, когда пытаюсь сохранить что-то в таблице:

Код: Выделить всё

{"date":"2024-07-07T20:50:08,250Z","env":"test","app":"some-service","version":"1.32.0","host":"_","level":"ERROR","logger":"org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]","msg":"Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: error performing isolated work; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: error performing isolated work] with root cause","thread":"http-nio-8080-exec-1","context":[],"eventId":"com.microsoft.sqlserver.jdbc.SQLServerException","stack":"com.microsoft.sqlserver.jdbc.SQLServerException: Invalid object name 'some_db.sch_some.some_seq'.\n\tat com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262)\n\tat com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1624)\n\tat com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:594)\n\tat com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:524)\n\tat com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7194)\n\tat com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2979)\n\tat com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:248)\n\tat com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:223)\n\tat com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:446)\n\tat com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52)\n\tat com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java)\n\tat
Вот как я создал последовательность

Код: Выделить всё

create sequence SCH_SOME.SOME_SEQ start with 1 increment by 1;
Поскольку у меня есть еще одна таблица в этой схеме, в которой нет проблем со вставкой, я думаю, что это может быть проблема с доступом. Я также пытался запустить оператор выбора гранта, как в Oracle, но в итоге получил вот это

Код: Выделить всё

SQL Error [4606] [S0001]: Granted or revoked privilege SELECT is not compatible with object.
Итак, есть ли в MS SQL другой набор разрешений, для которого мне нужно запустить грант? Я также пробовал UPDATE и ALTER, но это не имело значения. Если бы кто-нибудь мог пролить свет на эти вопросы, мы были бы очень признательны. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/787 ... 2-sequence
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»