如何使用jpa项目eclipse在实体类中生成唯一约束

时间:2017-09-22 04:08:51

标签: java eclipse jpa entity

我打算在我的项目中集成ORM,所以我使用eclipse的JPA项目从旧数据库中生成实体类。在生成的总共168个实体类中,它很好。但在某些约束中,nullableunique不会自动生成。

例如我需要这样的东西: -

@Column(name="USER_NAME",unique = true)
private String userName;

但在自动生成实体之后,代码中没有唯一约束。我怎样才能做到这一点?

任何建议都会有用。

4 个答案:

答案 0 :(得分:2)

检查日食中的JPA版本,如果发现最低版本将其更新为最新版本。最新的JPA创建了我们在数据库表中定义的所有约束 希望这可以帮助你。

Find Latest JPA on New "JPA project screen"

答案 1 :(得分:1)

@Unique表示一个唯一索引,用于阻止索引字段中的重复值。 如果不同的实体在唯一字段中具有相同的值(类似于主键的行为方式),则会在提交(或刷新)时抛出PersistenceException。 在你的例子中:



@Unique
@Column(name="USER_NAME")
private String userName;




答案 2 :(得分:1)

只有在创建表时才会创建唯一约束。如果表已存在,则在DDL更新期间仅添加新列。因此,您必须手动删除表格或将javax.persistence.schema-generation.database.action的值设置为drop-and-create

答案 3 :(得分:1)

你必须使用Jboss的Hibernate Tools,它可以让你做更好的逆向工程。

http://hibernate.org/tools/

外面有很多教程解释了如何使用hibernate工具。