Java jpa hibernate mysql查询中断
嗨,我的Spring boot JPA Hibernate类有一个令人困惑的错误 我使用JPA Dali工具从我的SQL模式创建实体类。 在使用它们(使用SpringBootJPA/hibarnate)时,我遇到了一些与不匹配的查询有关的奇怪问题。 以下是一个例子: 特性:Java jpa hibernate mysql查询中断,java,mysql,spring,hibernate,jpa,Java,Mysql,Spring,Hibernate,Jpa,嗨,我的Spring boot JPA Hibernate类有一个令人困惑的错误 我使用JPA Dali工具从我的SQL模式创建实体类。 在使用它们(使用SpringBootJPA/hibarnate)时,我遇到了一些与不匹配的查询有关的奇怪问题。 以下是一个例子: 特性: hibernate.dialect=org.hibernate.dialect.MySQLDialect spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jd
hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/users
spring.datasource.username=root
spring.datasource.password=root
实体:
@Entity
@Table(name="n_user")
@NamedQuery(name="NUser.findAll", query="SELECT n FROM NUser n")
public class NUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
private int id;
private String imageUrl1;
private String name_first;
public NCaterer() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getImageUrl1() {
return this.imageUrl1;
}
public void setImageUrl1(String imageUrl1) {
this.imageUrl1 = imageUrl1;
}
public String getName_first() {
return this.name_first;
}
public void setName_first(String name_first) {
this.name_first = name_first;
}
}
存储库:
public interface UserRepo extends CrudRepository<NUser, Long> {
}
这里的问题是image\u url1它应该是imageurl1,如Entity类中所述。这种情况发生在几个方面
为什么Hibernate在查询中将CamelCase getter转换为camel\u大小写?我怎样才能将其配置为不这样做呢?似乎有很多人在不同的情况下遇到相同的问题。也许去看看下面不同的命名策略:
但是,您可以更改休眠的配置。在这方面寻求进一步的帮助。或者,去看看这个,看看有人是如何使用上述方法更改的。如果您想自己指定列名,请使用
@column
为字段添加批注
例如:
@Column(name = "imageUrl1")
private String imageUrl1;
@Column(name = "nameFirst")
private String name_first;
NamedQuery是为java Pojo名称而不是表名称编写的。他的查询适用于
用户
部分。@Yogidlip抱歉,修正了很多问题。这很直接:)添加:@Column(name…)只能是小写,否则它们也会被忽略。e、 g.:@Column(name=“imageurl1”)@GregorSklorz您在哪里找到这些信息的?通常sql不区分大小写,对于下面建议的DBA来说应该无关紧要,您可以输入列名,然后再试一次。如果你面临任何问题,请例外。是的,我也发现了一些问题。谢谢,我不知道为什么我第一次找不到它。谢谢
@Column(name = "imageUrl1")
private String imageUrl1;
@Column(name = "nameFirst")
private String name_first;