【发布时间】:2012-05-18 23:21:09
【问题描述】:
我有一个hbm文件,如下:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping auto-import="true" default-lazy="false">
<class name="com.saman.entity.hibernate.EmployeeEntity"
table="Employee" optimistic-lock="version">
<id name="id">
<column name="Id" sql-type="bigint"/>
<generator class="native"/>
</id>
<timestamp name="version" source="db"/>
<property name="firstName">
<column name="FirstName" sql-type="nvarchar(300)"/>
</property>
<property name="lastName">
<column name="LastName" sql-type="nvarchar(300)"/>
</property>
<property name="employeeType">
<column name="EmployeeType" sql-type="nvarchar(300)"/>
</property>
<set name="shifts" table="Shifts" inverse="true" lazy="true" fetch="select">
<key>
<column name="Id" not-null="true"/>
</key>
<one-to-many class="com.saman.entity.hibernate.ShiftEntity"/>
</set>
</class>
</hibernate-mapping>
现在我想如果我添加一个员工并将其持久化,然后我添加另一个员工并使用以前的信息,我的系统会引发异常并告诉我数据库中有另一个员工具有该信息。
hibernate 会给我这个选项吗?
【问题讨论】:
-
您想查找所有信息是否相同或部分信息是否足够。我的意思是你有一个 id 列,它必须是唯一的。如果您尝试添加另一个具有相同 id 的人,休眠应该抛出异常。
-
我知道我们有 id,但考虑到有一个人的名字是“alex”,家人是“peterson”。我想告诉我的系统阻止添加包含这些信息的另一个主体。
标签: java database hibernate hibernate-mapping