我有一个我正在计算选票的文件。我想限制每个用户对给定的比赛进行一次投票。用户可以返回和更改他/她的投票,但它会更新比赛中竞争对手的选择。
我不知道如何使用 Hibernate 映射文件来做到这一点。(编程语言是 Java。)
我已经研究过使用复合 ID,但如果我以后需要它,我想在这个东西上有一个典型的数字主键。(我也不知道怎么做!=)
这是我生成模型对象和 SQL 的映射文件:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.example.project.model.db.Vote" table="vote">
<id name="voteId" type="int">
<meta attribute="scope-set">protected</meta>
<meta attribute="use-in-equals">true</meta>
<generator class="native" />
</id>
<many-to-one name="user" column="userId" unique="false" not-null="true" lazy="false"
class="com.example.project.model.db.User"
/>
<many-to-one name="competition" column="competitionId" unique="false" not-null="true" lazy="false"
class="com.example.project.model.db.Competition"
/>
<many-to-one name="competitor" column="competitorId" unique="false" not-null="true" lazy="false"
class="com.example.project.model.db.Competitor"
/>
<property name="dateAdded" type="date" not-null="true" />
</class>
</hibernate-mapping>