Tôi đang sử dụng Hibernate và có một lớp liên tục được gọi là "Người dùng". Vì đây là một từ khóa, tôi đã đánh dấu thuộc tính @Entity bằng một tên khác (tôi đã thấy, ví dụ: câu hỏi này: Unable to use table named "user" in postgresql hibernate)LRI: lỗi cú pháp tại hoặc gần "người dùng"
Tuy nhiên, tôi vẫn gặp rắc rối vì lớp này mở rộng khác và có vẻ như ngủ đông vẫn đang cố gắng sử dụng "người sử dụng" như một tên cột và nhận sai lầm:
@Entity(name = "XonamiUser")
public class User extends PropertyContainer {
...
và
@MappedSuperclass
public abstract class PropertyContainer implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected long key;
/** tags */
@ElementCollection
protected Set<String> tags;
@ElementCollection
protected Set<String> searchList;
...
lớp khác của tôi mà mở rộng PropertyContainer dường như làm việc tốt.
Đây có phải là lỗi trong chế độ ngủ đông không? Có cách nào xung quanh ngắn này refactoring? Cảm ơn!
Dưới đây là những sai lầm tôi nhìn thấy (hơi dọn dẹp):
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - Batch entry 0 insert into user_search_list (user, search_list) values ('1', 'bjorn') was aborted. Call getNextException to see the cause.
WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: 42601
ERROR org.hibernate.util.JDBCExceptionReporter - ERROR: syntax error at or near "user"
Position: 31
@TJ, tôi đã thêm các lỗi khiến tôi tin rằng nó vẫn đang sử dụng tên cột. –