Column 使用 NUMBER 型別,如何在 JPA 中用 Enum 做 mapping,且不使用 @Enumerated(EnumType.ORDINAL)
CREATE TABLE CHALLENGE_LOG (
ACTION NUMBER(1) NOT NULL
);
COMMENT ON COLUMN CHALLENGE_LOG.ACTION IS '0=Send OTP, 1=Verify OTP';
import javax.persistence.AttributeConverter; | |
/* | |
Base Enum converter for JPA | |
*/ | |
// @Converter | |
public abstract class AbstractEnumConverter<T extends Enum<T> & PersistableEnum<E>, E> | |
implements AttributeConverter<T, E> { | |
private final Class<T> clazz; |
axios({ | |
url: 'http://localhost:5000/static/example.pdf', | |
method: 'GET', | |
responseType: 'blob', // important | |
}).then((response) => { | |
const url = window.URL.createObjectURL(new Blob([response.data])); | |
const link = document.createElement('a'); | |
link.href = url; | |
link.setAttribute('download', 'file.pdf'); | |
document.body.appendChild(link); |
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>井字遊戲</title> | |
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> | |
<style> | |
h1{ | |
text-align: center; | |
} |
package com.paddypower.financials.market.management.rest.logging; | |
import java.io.BufferedReader; | |
import java.io.ByteArrayInputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.io.InputStreamReader; | |
import javax.servlet.Filter; | |
import javax.servlet.FilterChain; |
<?php | |
include_once('simplehtmldom_1_5/simple_html_dom.php'); | |
// $curl = curl_init('https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dautomotive&field-keywords=76250ST7A24ZC'); | |
$curl = curl_init('https://www.amazon.com/Mirrors-Smooth-Replacement-76250ST7A24ZC-76200ST7A24ZC/dp/B00OVT6UKU/ref=sr_1_1?s=automotive&ie=UTF8&qid=1528855755&sr=1-1&keywords=76250ST7A24ZC'); | |
// $curl = curl_init('https://www.amazon.com/Wireless-Charger-Veidoo-Gravity-Standard/dp/B07CJPRNN9/ref=sr_1_2_sspa?s=wireless&ie=UTF8&qid=1528899106&sr=1-2-spons&keywords=s9+plus&psc=1'); | |
curl_setopt($curl, CURLOPT_VERBOSE, true); | |
curl_setopt($curl, CURLOPT_HTTPHEADER, array( | |
'accept-language: en', | |
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36' | |
)); |
const puppeteer = require('puppeteer'); | |
(async () => { | |
const browser = await puppeteer.launch(); | |
const page = await browser.newPage(); | |
await page.goto('https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-alias%3Daps&field-keywords=s9+plus&rh=i%3Aaps%2Ck%3As9+plus'); | |
// await page.screenshot({path: 'example.png'}); | |
// await page.pdf({path: 'page1.pdf', format: 'A4'}); | |
console.log(await parse(page)) |
{ | |
"name": "covalent-quickstart", | |
"version": "1.0.0", | |
"private": true, | |
"description": "Quickstart App with @covalent packages", | |
"keywords": [ | |
"angular", | |
"components", | |
"reusable" | |
], |
function retry(isDone, next) { | |
var current_trial = 0, max_retry = 50, interval = 10, is_timeout = false; | |
var id = window.setInterval( | |
function() { | |
if (isDone()) { | |
window.clearInterval(id); | |
next(is_timeout); | |
} | |
if (current_trial++ > max_retry) { | |
window.clearInterval(id); |
文章連結 https://github.com/kdchang/reactjs101/blob/master/Ch04/props-state-introduction.md
<iframe height='411' scrolling='no' title='Typechecking With PropTypes' src='//codepen.io/iampaul83/embed/mBrpzy/?height=411&theme-id=0&default-tab=js,result&embed-version=2' frameborder='no' allowtransparency='true' allowfullscreen='true' style='width: 100%;'>See the Pen Typechecking With PropTypes by Paul Tsai (@iampaul83) on CodePen.