0
我已經得到了用戶的實體:JPQL在語法一到一個錯誤
@Entity
@Table
class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column
private Integer value;
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "user")
private UserDetails userDetails = new UserDetails(this);
// getters, setters
}
的UserDetails實體:
@Entity
@Table(name = "user_details")
class UserDetails {
@GenericGenerator(name = "generator", strategy = "foreign",
parameters = @Parameter(name = "property", value = "user"))
@Id
@GeneratedValue(generator = "generator")
@Column(name = "user_id", unique = true, nullable = false)
private Integer id;
@Column
private String name;
@OneToOne
@PrimaryKeyJoinColumn
private User user;
public UserDetails(User user) {
setUser(user);
}
//getters, setters
}
而且我有一個UserRepository
public interface UserRepository extends JpaRepository<User, Integer> {
@Transactional
@Modifying
@Query("update User set value = ?2 where userDetails.name = ?1")
Integer addValue(String name, int value);
}
方法addValue給出下一個錯誤:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set value=1000 where name='John'' at line 1
我試圖將名稱從UserDetails移動到用戶和它的工作,但我必須保持它在UserDetails。錯誤在哪裏?
我不使用'「父」'和「‘孩子’'方面認爲這裏是正確。沒有繼承正在發生。 –
@RamanSahasi你可以試試這個東西,讓我知道。再次讀取異常。 –
不幸的是,它給了我同樣的錯誤。 – Feeco