我正在通过hibernate为自动生成的表提供用户和聊天之间的关系(聊天可以有多个用户,用户可以有多个聊天):
==User Model==
@Entity
public class User implements Serializable{
@Id
@GeneratedValue
private int userId;
private String username
==聊天模型==
@Entity
public class Chat implements Serializable{
@Id
@GeneratedValue
private int chatId;
private String subject;
@ManyToMany
private List<User> users;
@ManyToOne
private User created;
这将生成一个名为Chat_User的新表,其中包含用户的ID和聊天。现在我需要在这个生成的表中添加另一个字段(lastSeen)。怎么能实现呢?现在我有一个看起来像下面那个的新模型,但它不起作用:
@Entity @Table(name = "Chat_User", catalog = "pdl") public class ChatUser implements Serializable {
@Id
@ManyToOne
@JoinColumn(name="users_userId", nullable=false)
private User user;
@Id
@ManyToOne
@JoinColumn(name="Chat_chatId", nullable=false)
private Chat chat;
@Temporal(javax.persistence.TemporalType.TIMESTAMP)
private Date lastSeen;
它会抛出异常:'字段列表'中的未知列'lastSeen'。当我在数据库中手动创建它时,它以某种方式工作,但随后它创建了多个条目(一个使用lastSeen作为值NULL,另一个具有正确的值)。请帮忙。
答案 0 :(得分:0)
您需要创建一个Embeddable Class并使用Association覆盖来覆盖连接表。 Click here for a link to sample code by mkyong。如果您需要更多帮助,请告诉我。