In @Table(name = “tableName”) - make “tableName” a variable in JPA

后端 未结 5 1376
無奈伤痛
無奈伤痛 2020-12-16 14:35

I am using JPA and I need to make the \"tableName\" a variable.

In a database, I have many tables, and my code needs to access the table where I specify it to read.

5条回答
  •  有刺的猬
    2020-12-16 15:18

    You can do something like this, if thats your concern, I guess. Never tried it, its just a wild guess. But thats the usual practice -- I follow for Named Queries; yes, that's a different thing altogether.

    @Entity
    @Table(name = Database.tableName)
    public class Database implements Serializable {
        public static final String tableName = "TABLE_1";
        ...............
    }
    

    But I don't see why anyone would do that. Could you tell us what are you up to? Why you have few tables exactly same definition?

    [Edited]

    I tried your solution. It did not work, it says: The value for annotation attribute Table.name must be a constant expression.

    So, isn't that clear enough? I mean you can't do that. And I believe its quite logical. If you want Hibernate to generate your schema then you can define all the entities you want, in the schema, and with the appropriate relationships.

提交回复
热议问题