簡體   English   中英

為什么SqlExceptionHelper將布爾約束違反解釋為\\ x00

[英]Why does SqlExceptionHelper interpret boolean constraint violation as \x00

我有以下域對象

@Table(uniqueConstraints={@UniqueConstraint(columnNames={"name", "company_id", "global"}, name="UC_name_companyId_global")})
@Entity
@Audited
public class AccessLevel implements Serializable, GlobalEntityInstance {

private static final long serialVersionUID = -7215569721971710808L;

  @Size(min = 2)
  @Column(nullable = false)
  private String name;

  @ManyToOne(optional = false)
  private Company company;

  @Column
  private boolean global = false;

  @Column(nullable = false)
  private GeneralStatus status;
}

company屬性映射到列company_id

我創建了一個測試用例,以測試當使用相同的“名稱”,“公司”和“全局”值添加訪問級別時,將引發DataIntegrityViolationException 興奮被拋出了,我的問題是關於消息的:

ohengine.jdbc.spi.SqlExceptionHelper : Duplicate entry 'Temp Level-1-\\x00' for key 'UC_name_companyId_global'

“ \\ x00”(如果保存為true則為“ \\ x01”)到底是什么?為什么SqlExceptionHelper會為其映射/解析一個布爾值? 重復輸入鍵是否應該為“ Temp Level-1-false”?

預先感謝,格蘭特

更新:

我目前正在使用MySQl 5.6

\\x00為十六進制0\\x01為十六進制1 通常(但並非總是)使用falsetrue值。 例如,MySQL將布爾列存儲為BIT(1) ,因此它在內部使用0/1代替true/false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM