我有一个Sring hibernate模型如下
@Entity
@Table(name = "client")
public class Category {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private long id;
private String type;
...
...
...
我有50个专栏。现在,在将新行插入此表时,如何动态地给出列名
Client client = new Client();
String columnName = "type";
如何使用字符串columnName中提供的列名更新客户端模型?
答案 0 :(得分:1)
如果要动态设置列的值,可以使用Java反射概念。 看看Java反射概念,以下链接可能会有所帮助
http://tutorials.jenkov.com/java-reflection/fields.html
http://www.avajava.com/tutorials/lessons/how-do-i-get-and-set-a-field-using-reflection.html
答案 1 :(得分:0)
为了更新表,我们需要从Object类中获取该字段并为其设置新值,最后调用save()方法。
但是,如果要动态设置字段值,则需要使用Java反射方法查找Category对象中存在的属性。使用java中 Field 对象提供的方法并使用它们。然后在获取文件后调用相同的set方法并更新该值。
Category.class.getDeclaredFields()
。