我正在尝试使用Hibernate注释为我的数据库表编写一个模型类。
我有两个表,每个表都有一个主键用户和问题。
@Entity
@Table(name="USER")
public class User
{
@Id
@Column(name="user_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name="username")
private String username;
// Getter and setter
}
问题桌。
@Entity
@Table(name="QUESTION")
public class Questions extends BaseEntity{
@Id
@Column(name="question_id")
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="question_text")
private String question_text;
// Getter and setter
}
并且我还有一个表UserAnswer,它有userId和questionId作为来自上面两个表的外键。
但我无法找到如何在UserAnswer表中引用这些约束。
@Entity
@Table(name="UserAnswer ")
public class UserAnswer
{
@Column(name="user_id")
private User user;
//@ManyToMany
@Column(name="question_id")
private Questions questions ;
@Column(name="response")
private String response;
// Getter and setter
}
我怎样才能做到这一点呢?
@column
不是适当的批注。您不希望在一个列中存储整个用户或问题。您希望在实体之间创建关联。首先将questions
重命名为questions
,因为一个实例表示一个问题,而不是几个问题。然后创建关联:
@Entity
@Table(name = "UserAnswer")
public class UserAnswer {
// this entity needs an ID:
@Id
@Column(name="useranswer_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "question_id")
private Question question;
@Column(name = "response")
private String response;
//getter and setter
}
Hibernate文档解释了这一点。读一下。并阅读注释的javadoc。
问题内容: 我正在尝试使用Hibernate注释为我的数据库表编写模型类。 我有两个表,每个表都有一个主键User和Question。 问题表。 我还有一个表UserAnswer,其中有来自上面两个表的userId和QuestionId作为外键。 但是我无法在UserAnswer表中找到如何引用这些约束的方法。 我该如何实现? 问题答案: 不是适当的注释。您不想在列中存储整个用户或问题。您要在实体
我有一个2个实体和,其中引用。这是一个多(子)对一个(父)关系,定义如下: 和 Micronaut Data在创建架构时执行以下SQL查询: 创建一个表<code>parent_entity</code>(<code>id</code>BIGINT不为空,<code>name</code>VARCHAR(255)不为空); 创建表< code > child _ entity (< code >
//获取和设置 以下是我给用户的POJO:
问题内容: 我试图用来向没有定义主键的表中插入数据。 但是事实是该表的两个字段一起在表中是唯一的。我如何使用hibernate注释实现相同的目的? 这是我的代码。 问题答案: 您可以使用和创建复合键,并将其与您的实体进行映射。例如: 然后在Java代码中使用常规方式来持久化实体。 参考:http : //docs.jboss.org/hibernate/annotations/3.5/refere
hibernate如何生成外键约束名称? 如果我不定义一个名字,Hibernate会生成这样的东西 这个名字是如何产生的?可能是从字段名散列或类似的内容?我需要知道名称是否在所有实例上都相等。
问题内容: 所以我对数据库中的某些表进行了反向工程,当我尝试将对象保存到数据库中时,出现以下错误: 初始SessionFactory创建失败。org.hibernate.AnnotationException:从com.mycode.Account引用com.mycode.Block的外键具有错误的列数。在线程“ main”中应为2异常java.lang.ExceptionInInitialize