我是JPA的新手。我正在用Wicket Spring Hibernate JPA构建示例maven项目。
我正在使用Hibernate EntityManager:v4.3.5.Final。我正在使用JPA:v2.1-api。我正在使用数据库mySql:v5.6。
在编写模型类时,我希望将表映射为多个列,其中模型类中的一个元素为List或Set。
Database Table Name: QUESTION_MAIN
Column Name : Type : PK
QID : int : PK
QTYPE : varchar
QUESTION : varchar
OPTION1 : varchar
OPTION2 : varchar
OPTION3 : varchar
OPTION4 : varchar
OPTION5 : varchar
OPTION6 : varchar
注:假设问题最多有6个选项。
现在在模型类中,我想表示如下:
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="QUESTION_MAIN")
public class Question {
@Id
@GeneratedValue
@Column(name="QID")
private Long id;
@Column(name="QTYPE")
private String quest_type;
@Column(name="QUESTION")
private String question;
//TODO: Create List or Set for OPTIONS
}
对于代码中的行:
//TODO: Create List or Set for OPTIONS
我想在这里为选项列创建一个列表或设置。
请告诉我任何可能的方法。或者,如果任何人意识到这种情况,请提供任何替代方案。
你好,Luiggi,我不确定你提供的上述链接是否解决了我的问题。但我仍在努力理解该链接中提供的选项。我想要的是,我可以创建一个列表或一组列名作为Bean类中的一个元素(带有JPA注释)吗。
至少,需要将实体属性映射到表列。所以只需要属性(变量,getter
...
@Column(name="OPTION") //here OPTION1, OPTION2, and so on
private String option;
...
另一种方法是为OPTION创建一个单独的表和一个实体来满足您的要求。从问题
实体可以与Option
实体建立关系(一对多
uni或双向关系-下面的示例使用双向
)
@Entity
@Table(name="OPTION")
public class Option {
@Id
@GeneratedValue
@Column(name="") //column name in table
private Long id;
@Column(name="")
private String optionTitle; //can use enum for OPTION1, OPTION2, and so on
@Column(name="")
private String optionValue;
@ManyToOne
@JoinColumn(name = "QUESTION_ID", nullable = false) //QUESTION_ID (whatever you defined foreign key column in Option table)
private Question question;
..
//constructor, getters & setters
}
在有问题的实体中,添加选项集合的属性(根据需要列出、设置和任何可排序的集合)
@OneToMany(mappedBy = "question")
private List<Option> optionList = new ArrayList<Option>();
问题内容: 我有一个班级用户。用户可以与许多其他用户成为朋友。这种关系是相互的。如果A是B的朋友,那么B是A的朋友。我也希望每个关系都存储其他数据,例如两个用户成为朋友的日期。因此,这是同一表上具有多列的多对多关系。我知道应该创建一个中产阶级友谊(包含两个用户ID和日期列)。但是我在将其与Hibernate映射时做得不够。使我停滞不前的是映射到了同一张表。如果多对多关系是在两个不同的表之间,则可以
要删除表的列,请在ALTER table语句中使用drop column子句,如下所示: 错误:“rs”行或其附近出现语法错误1:ALTER TABLE res_partner rs
问题内容: 我想使用链接表在Hibernate中映射多对多。我有两个类,例如Parent和Child类: 我用三列的链接表(link_table) ,和。该数据库是SQL Server,并且ID类型是uniqueidentifier。因此,我通常将guid用于id字段。 你怎么能实现这个使用 标签,如果这是要使用正确的标签?您知道有什么好的文档可以做到这一点吗? 我目前正在获取Constraint
我是java新手,正在努力克服它。我有类似(< code>String URL,int Score)的数据,我想在数组列表中实现它。我研究了如何在< code>ArrayList或< code>LinkedList中实现多种类型的变量,发现解决方案是从超类创建子类,我创建了这个子类: 我的超级班是: 当我尝试使用添加对象时,我遇到了错误?该错误说: 类型ArrayList中的add(int,MyS
我想运行一个mysql查询,从一个表中选择所有行,,其中列的值在另一列()的所有值中的任何位置都不存在。 以下是我的表格的简化版本,其中包含以下内容: 我的问题是: 在本例中,我希望选择标题为和的行,但我的查询没有返回任何行。 以下是表格结构:
问题内容: 我是Hibernate的新手,必须支持使用Hibernate的现有应用程序。这是一个纯报表应用程序-无需插入/更新/删除-仅选择 我可以看到在同一类的多个字段中使用了@Id注释的现有POJO对象 我的理解是,对于复合主键-您需要使用@Embeddable和@EmbeddedId 但是,这没有在我的课程中定义,奇怪的是代码可以编译并正常运行 这是我的代码的示例: 在pojo中还有更多字段