How to create foreign key in Hibernate on Integer column
I have an entity in Java and I would like Hibernate to create a foreign key from an Integer field (since I don't have an object reference):
@Entity
public class Invoice {
...
@Column(nullable = true)
private Integer generatedBy;
...
I think I'd like to do something like this with an attribute:
@ForeignKey(name="FK_Invoice_开发者_开发知识库GeneratedBy", references="UserTable.UserId")
@Column(nullable = true)
private Integer generatedBy;
What is the best way to achieve this? I would preferably not have to maintain these relationships in a separate file (if possible).
There doesn't seem to be a solution to this, thus accepting this as an answer.
There is a way to do it, but it is not very nice...
You can have your integer attribute, AND an object attribute mapped this way:
@Column(ame = "GENERATED_BY", nullable = true)
private Integer generatedBy;
@ForeignKey(name="FK_Invoice_GeneratedBy")
@JoinColumn(name = "GENERATED_BY", nullable = false, updatable = false, insertable = false)
private User generatedByUser;
You may keep no external access to your generatedByUser field, it will only show hibernate that there is a relationship. You can set the Integer field at will, when you load this object from DB later you'll have your user reference.
Again, not very pretty, but can be useful sometimes.
精彩评论