【发布时间】:2019-04-27 18:52:00
【问题描述】:
我试图在我的Spring Boot 应用程序中的sql-server 数据库中保存一个对象列表,但是当我调用save 方法时出现异常。
2018-11-26 11:50:41.896 WARN 22082 --- [nio-8080-exec-2] o.h.e.j.s.SqlExceptionHelper : SQL Error: 208, SQLState: S0002
2018-11-26 11:50:41.897 ERROR 22082 --- [nio-8080-exec-2] o.h.e.j.s.SqlExceptionHelper : Invalid object name 'ticket'.
下面是正在使用的配置:
#SQL Server configurations
spring.datasource.url=jdbc:sqlserver://my.server.ip.address;databaseName=UH
spring.datasource.username=Test
spring.datasource.password=Test@123
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
Model 看起来像:
@Entity(name = "Ticket")
public class Ticket {
public Ticket() {
}
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(name = "ticket_id", nullable = false, length=200)
private long ticket_id;
@Column(name = "topic", nullable = false, length=200)
private String topic;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Tag> tag;
@Column(name = "type", nullable = false, length=200)
private String type;
@Column(name = "brand", nullable = false, length=200)
private long brand;
@Column(name = "ticket_group", nullable = false, length=200)
private long ticket_group;
@Column(name = "priority", nullable = false, length=200)
private String priority;
@Column(name = "status", nullable = false, length=200)
private String status;
@Column(name = "created_date", nullable = false, length=200)
private String created_date;
@Column(name = "created_time", nullable = false, length=200)
private String created_time;
@Column(name = "channel", nullable = false, length=200)
private String channel;
// Getters & Setters....
}
我创建了Repository 类:
@Repository
public interface TicketRepository extends JpaRepository<Ticket, Long> {
}
最后是控制器:
@RestController
public class TicketController {
@Autowired
TicketRepository ticketRepository;
@GetMapping("/tickets")
public void saveTicketData() {
List<Ticket> tickets = null;
try {
tickets = getAllTickets(); //some utility method
ticketRepository.save(tickets); // here exception occurs
} catch (Exception e) {
e.printStackTrace();
}
}
不知道这里出了什么问题。在 SQL Server 中保存对象列表的方法是否与在 MySQl 中不同?这适用于 MySQL,或者如果我切换到 Mongo。
任何帮助将不胜感激。
【问题讨论】:
-
你能不能也展示一下你的实用方法。
-
erm,可以截图你的数据库架构/表吗?只是好奇您是否将名称设置为“db”...
-
编辑了数据库名称。这正是我在 SQL Server 中创建的
-
@PoojaAggarwal:实用方法只不过是解析一些 JSON 并创建 Ticket 对象,填充票证字段并将其保存为集合并返回。
标签: java sql-server hibernate spring-boot spring-data-jpa