я использовать пружину сохранитьпружинных JPA сохранения данных вручную назначить идентификатор
HighWay highWay = new HighWay();
highWay.setId("000");
HighWayRepository hRepository = (HighWayRepository) context
.getBean("highWayRepository");
hRepository.save(highWay);
hRepository.flush();
public interface HighWayRepository extends JpaRepository<HighWay, String> {
}
таблицы походит f_id
VARCHAR (256) NOT NULL,
public class HighWay {
@Id
@Column(name="f_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;}
но бросает исключение
причиненного по: java.sql.SQLException: Поле 'f_id' не имеет значения по умолчанию на com.mysql.jdbc.SQLError.createSQLException (SQLError.java:946) в com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:2870) в com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java: +1573) при com.mysql.jdbc.ServerPreparedStatement.serverExecute (ServerPreparedStatement.java:1169) на com.mysql.jdbc.ServerPreparedStatement.executeInternal (ServerPreparedStatement.java:693) на com.mysql.jdbc.PreparedStatement. executeUpdate (PreparedStatement.java:1404) на com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.java:1318) на com.mysql.jdbc.PreparedStatement.executeUpdate (PreparedStatement.java:1303) наcom.alibaba.druid.pool.DruidPooledPreparedStatement.executeUpdate (DruidPooledPreparedStatement.java:253) на org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate (ResultSetReturnImpl.java:208) ... 51 более
Я проверяю документ, Проверка подлинности Id-Property (по умолчанию) По умолчанию Spring Data JPA проверяет Id-Свойство данного объекта. Если Id-Property имеет значение NULL, то объект будет приниматься как новый, иначе как не новый.
sql как Hibernate: insert into us_highway (blockTime, blockType, endNum, predictTime, publishTime, roadName, situation, startNum, tips) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
нет идентификатор - это вставка!
потому что я хочу назначить идентификатор вручную, id-свойство не равно null, если новый, как настроить для сохранения?
Если вы сами присваиваете идентификатор, не используйте '@ GeneratedValue', поскольку это в основном позволяет базе данных управлять идентификатором. –