相关疑难解决方法(0)

JPA列具有不正确的下划线

我使用JPA进行数据库访问,并使用正确的名称注释每一列.现在如果我执行查询(例如findAll())它返回

Unknown column 'program0_.program_id' in 'field list'
Run Code Online (Sandbox Code Playgroud)

错误消息是正确的program_id是未知的,因为真实姓名是programId.

型号:程序

  @Entity
  @Table(name = "programs")
  @XmlRootElement
  public class Program implements Serializable {
          @Id
          @GeneratedValue(strategy = GenerationType.IDENTITY)
          @Basic(optional = false)
          @Column(name = "programId")
          private Long programId;
          @ManyToMany
          @JoinTable(
                  name = "programlabels",
                  joinColumns = {
                    @JoinColumn(name = "program", referencedColumnName = "programId")},
                  inverseJoinColumns = {
                    @JoinColumn(name = "label", referencedColumnName = "labelId")})
          private Collection<Label> labels;
        }
Run Code Online (Sandbox Code Playgroud)

标签

@Entity
@Table(name = "labels")
@XmlRootElement
public class Label implements Serializable {
  @Id
  @Basic(optional …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa jdbc

23
推荐指数
3
解决办法
2万
查看次数

Spring Boot的Hibernate字段命名问题(命名策略)

请注意,此代码适用于普通的Spring,但不适用于Spring Boot(v1.3.3),是否有一些我缺少的东西,因为这是从一个有效的弹簧应用程序导入的.下面的代码来自spring boot应用程序

@Entity
@Table(name="project")
public class Project implements Serializable{

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    @Column(name="id")
    private int id;

    @Column(name="teamId")
    private int teamId;

    //private String Rentabiliteit;

    @Column
    //@Index(name="IProject_status",columnNames="Status")
    private String status;

    @Column
    //@Index(name="IProject_naam",columnNames="Naam")
    private String naam;
    //public Prototype m_Prototype;
    //public Team m_Team;

}
Run Code Online (Sandbox Code Playgroud)

SQL

CREATE TABLE IF NOT EXISTS `project` (
`id` int(11) NOT NULL,
`teamId` int(11) DEFAULT NULL,
`status` varchar(255) DEFAULT NULL,
`naam` varchar(255) DEFAULT NULL
 ) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)

错误

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: …
Run Code Online (Sandbox Code Playgroud)

hibernate spring-boot

23
推荐指数
2
解决办法
4万
查看次数

Spring 数据 JPA nativeQuery order by 无效

Spring Data Jpa 方法是这样的:

@Query("select pb.id,pp.max_borrow_amt,pp.min_borrow_amt
from product_loan_basic pb left join product_loan_price pp on pb.code=pp.product_code 
 where pb.code IN(?1) and pb.status='publish' order by  ?2 ",
nativeQuery = true)  
List<Object[]> findByCodesIn(List<String> codes,String orderby);
Run Code Online (Sandbox Code Playgroud)

那么 order by 是“ max_borrow_amt desc ”,但这是无效的。
列表是无序的。

java sql postgresql spring-data-jpa spring-boot

6
推荐指数
1
解决办法
5217
查看次数

如何更改JPA生成的列名的默认格式

目前我正在将新的JPA实体映射到旧数据库.数据库中的列名称使用下划线分隔列名称,如"my_column_name".

问题是JPA默认使用camel case.

// Will be 'myColumnName' in queries and generated databases
private String myColumnName;
Run Code Online (Sandbox Code Playgroud)

我知道可以在属性上添加@Column(name ="..")或@JoinColumn(name ="...") - 但这意味着我必须将它添加到所有实体中的每个属性.

@Column(name = "my_column_name")
private String myColumnName;
Run Code Online (Sandbox Code Playgroud)

是否可以更改JPA的默认行为以使用'my_column_name'而不是'myColumnName'?

java persistence hibernate jpa openjpa

5
推荐指数
1
解决办法
3875
查看次数

除非明确指定,否则如何通过默认命名从camelCase到snake_case使Spring Data JPA?

默认情况下,我的 Spring Boot 项目通过将名称从camelCase 转换为snake_case(例如from fooBarto foo_bar)来将实体属性映射到表列。

我正在处理现有的数据库,其中实体属性名称保留为表列名称(例如 from fooBarto fooBar),因此我尝试使用@Column注释显式指定名称:

@Column(name = "fooBar")
private String fooBar;
Run Code Online (Sandbox Code Playgroud)

这是行不通的。我遵循了这里给出的建议:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Run Code Online (Sandbox Code Playgroud)

@Column现在已成功考虑在内,但我在没有@Column注释的属性上丢失了camelCase到snake_case的隐式转换。

除非在@Column注释中明确指定,否则知道默认情况下如何从camelCase 转换为snake_case吗?

java naming hibernate spring-data-jpa spring-boot

5
推荐指数
1
解决办法
7238
查看次数

JPA Hibernate 驼峰字段

我有 spring 4+ hibernate 4.3 + psql 9.5 应用程序,并遇到了驼峰字段转换的一些问题。

Hibernate: select trainservi0_.trainServiceId as trainSer1_16_, trainservi0_.category as category2_16_, trainservi0_.date as date3_16_, trainservi0_.description as descript4_16_, trainservi0_.name as name5_16_, trainservi0_.status as status6_16_, trainservi0_.trainNumber as trainNum7_16_, trainservi0_.version as version8_16_ from tms.public.train_service trainservi0_
2016-02-29 13:09:34 WARN  SqlExceptionHelper:144 - SQL Error: 0, SQLState: 42703
2016-02-29 13:09:34 ERROR SqlExceptionHelper:146 - ERROR: column trainservi0_.trainserviceid does not exist
 Perhaps you meant to reference the column "trainservi0_.trainServiceId".
Run Code Online (Sandbox Code Playgroud)

这是我的配置:

public class DataBaseProdConfig {

    @Resource
    private Environment env;

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa

1
推荐指数
1
解决办法
3859
查看次数